2013-02-15 111 views
0

我和我的團隊正在開發這個原生的Android應用程序,它基本上是一個特定移動網站的WebView包裝器,實現了一些本地功能。什麼是從WebView中刪除元素的推薦方式?

網站上會有一個橫幅廣告本地應用程序。但是當用戶已經使用原生應用程序時,顯示此橫幅並沒有任何意義,所以我們必須擺脫它。

我的第一種方法是在WebView中注入一些Javascript,它將查找HTML元素並更改其可見性。夠簡單。但是,這是最好的/推薦的方法嗎?

如果網站開發人員要檢測網站是否通過本機應用程序顯示並且根本不顯示橫幅,這可能會更好。是?你會如何建議這樣做?

回答

1

有幾個辦法......

  1. 你可以問主站點的開發人員創建一個名爲hideAd()一個JavaScript函數,然後一旦該網頁使用webView.loadUrl("javascript:hideAd()")加載,你可以調用該函數。

  2. 您可以創建僅存在於本機應用程序中的界面,以便網頁可以查詢以確定它是否在應用程序中運行。在Java端使用webView.addJavascriptInterface(new MyJSJavaBridge(), "nativeapp");,然後使用if (window.nativeapp)...檢查Javascript中的接口。

  3. 您可以更改用戶代理字符串添加一些獨特的標識符使用webView.getSettings().setUserAgentString("<old agent string plus some custom id>");您的應用程序,然後讓JS代碼查詢的用戶代理字符串。

可能有許多其他的選擇,這些只是其中的一部分。我會說最簡單的可能是爲用戶代理添加一些唯一的ID。

+0

只是要明確約3.我的工作只是提供用戶代理字符串上的唯一標識符。網站人員將負責隱藏廣告,對嗎? – 2013-02-16 15:57:46

+1

是的,網站人員將負責編寫JavaScript來查詢代理字符串,搜索唯一的本地標識符,然後隱藏廣告,如果他們找到標識符。你只需要在Java中設置用戶代理字符串。 – Theo 2013-02-16 19:38:55

相關問題