0

我和我的团队将开发这个原生 Android 应用程序,它基本上是一个特定移动网站的 WebView 包装器,实现了几个原生功能。

网站上将有一个横幅来宣传本机应用程序。但是当用户已经在使用原生应用时显示这个横幅没有任何意义,所以我们必须摆脱它。

我的第一种方法是将一些 Javascript 注入到 WebView 中,它将查找 HTML 元素并更改它的可见性。很简单。但这是解决此类问题的最佳/推荐方法吗?

如果网站开发人员能够检测网站是否正在通过本机应用程序显示并且根本不显示横幅,也许会更好。是的?你会如何建议这样做?

4

1 回答 1

1

有几种方法...

  1. 您可以要求主站点的开发人员创建一个名为 的 Javascript 函数hideAd(),然后您可以在页面加载后使用 调用该函数 webView.loadUrl("javascript:hideAd()")

  2. 您可以创建一个仅存在于本机应用程序中的界面,网页可以查询该界面以确定它是否在应用程序中运行。webView.addJavascriptInterface(new MyJSJavaBridge(), "nativeapp");在 Java 端使用,然后使用if (window.nativeapp)....

  3. 您可以更改用户代理字符串以使用 为您的应用附加一些唯一标识符webView.getSettings().setUserAgentString("<old agent string plus some custom id>");,然后让 JS 代码查询用户代理字符串。

可能还有很多其他选择,这些只是其中的一部分。我想说最简单的可能是将一些唯一的 id 附加到用户代理。

于 2013-02-15T22:06:54.910 回答