0

私と私のチームは、基本的に特定のモバイル Web サイト用の WebView ラッパーであるこのネイティブ Android アプリを開発し、いくつかのネイティブ機能を実装します。

ネイティブ アプリを宣伝するバナーが Web サイトに表示されます。しかし、ユーザーが既にネイティブ アプリを使用しているときにこのバナーを表示しても意味がないため、これを削除する必要があります。

私の最初のアプローチは、HTML 要素を探してその可視性を変更する Javascript を WebView に挿入することです。十分に単純です。しかし、これはそのようなことに対する最善/推奨のアプローチですか?

Web サイトの開発者が、Web サイトがネイティブ アプリを介して表示されているかどうかを検出し、単純にバナーを表示しない方がよいでしょう。はい?これをどのように行うことをお勧めしますか?

4

1 に答える 1

1

いくつかのアプローチがあります...

  1. メイン サイトの開発者に と呼ばれる Javascript 関数を作成するように依頼することができますhideAd()。その後、ページが を使用してロードされたら、その関数を呼び出すことができます webView.loadUrl("javascript:hideAd()")

  2. ネイティブ アプリにのみ存在するインターフェイスを作成できます。Web ページはクエリを実行して、アプリで実行されているかどうかを判断できます。webView.addJavascriptInterface(new MyJSJavaBridge(), "nativeapp");Java 側で使用し、Javascript でインターフェイスを確認しますif (window.nativeapp)...

  3. ユーザー エージェント文字列を変更して、 を使用してアプリの一意の識別子を追加しwebView.getSettings().setUserAgentString("<old agent string plus some custom id>");、JS コードでユーザー エージェント文字列をクエリすることができます。

おそらく他にも多くのオプションがありますが、これらはほんの一部です。おそらく最も簡単なのは、ユーザー エージェントに一意の ID を追加することだと思います。

于 2013-02-15T22:06:54.910 に答える