2013-02-15 114 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

相关问题