問題:Android WebView内にWebページをあらかじめ読み込んで、アクティビティの準備ができたらアクティビティに添付します。実際のアクティビティが作成される前に、Webページをロードするトリガポイントが表示されます。だから私は次の方法でサービス内にwebviewオブジェクトを作成します。このウェブ表示を表示する必要がある活動は、私はちょうどでframeLayoutを作成して、すなわち、このWebViewの子ビューを追加し、setContentViewを呼び出して作成されますContextWrapperとContextを使用してAndroid WebViewオブジェクトを作成したときの違いは何ですか?
MutableContextWrapper contextWrapper = new MutableContextWrapper(serviceContext.getApplicationContext());
this.webView = new WebView(contextWrapper);
。このようにして、私のウェブビューは、ウェブページがプリロードされた状態で表示されます。私も次のようにします。
contextWrapper.setBaseContext(CurrentActivity.this);
これは、上記で指定したのと同じContextWrapperオブジェクトです。この後も、webviewは通常のユースケースで描くことができるJavascriptアラートを描画しません。私は
ContextWrapper contextWrapper = new ContextWrapper(CurrentActivity.this);
this.webView = new WebView(contextWrapper);
this.webView.loadUrl(someUrl);
を行うと
はさえWebViewのはJSアラートをポップアップ表示することができません。ログに例外タグや致命的なタグが表示されません。 WebViewは、その上にウィンドウを描画することはできません。
これは通常の方法で正常に動作し、現在のアクティビティのコンテキストで直接WebViewを作成することを意味します。私はhttp://developer.android.com/reference/android/content/ContextWrapper.htmlを知っているすべてのために
this.webView = new WebView(CurrentActivity.this);
this.webView.loadUrl(someUrl);
だけコンストラクタで渡されたとして、それが保持しているベースコンテキストで同じ操作を実行します。
私の使用例は、このようなものです。私はhttp://developer.android.com/reference/android/content/MutableContextWrapper.htmlが渡されたWebViewオブジェクトを作成します。 MutableContextWrapperは、いくつかのアクティビティのコンテキストを保持するか、または保持できるか、またはアプリケーションコンテキストを保持します。 webviewを表示する必要がある実際のアクティビティが開始されると、私はMutableContextWrapper内のコンテキストを切り替えて、フレームレイアウトとsetContentViewに入れてWebviewを表示します。基本的には、ページをロードするトリガーはアクティビティーが作成される前であるため、Webviewでページをロードしてから、アクティビティーを作成するときにアクティビティーにアタッチする必要があります。
にあなたのWebView上の可視性を設定します。誰かがそれをもっと明確にしようとすることができるほど多くのupvotedされている限りは? –
こんにちはボリス、質問の詳細を更新しました –