私のアプリケーションではWebView
を使用していますが、JavaScript alert( )
メソッドを使用していますが、機能していません。ポップアップは表示されません。
私が追加したマニフェストファイルに
<uses-permission Android:name="Android.permission.INTERNET"></uses-permission>
アクティビティファイルに追加しました
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///Android_asset/demo.html");
追加したレイアウトxmlファイル
<WebView
Android:id="@+id/webview"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
/>
JavaScript
で完全なWebView
を有効にする方法の手がかりはありますか?
更新
ありがとうマークhtml
ファイルのalert()
メソッドは現在機能しています:)。
WebView
には2つの問題があります。
1:WebView
で読み込んでいるhtmlファイルで<textarea>
を使用していますが、その中にヒンディー語のフォントで書き込もうとしていますが、ヒンディー語のテキストを書き込もうとするとシンボルとして表示されます([]のような長方形記号)。
デスクトップのFirefoxブラウザで同じことをすると、うまくいきます。 textarea
のWebView
で複数の言語をサポートする方法の手がかりは?
2:[送信]をクリックして、別のJavaスクリプトのalert()
メソッドのテキストの値を開こうとすると、動作しません。これは、WebChromeClient
を使用した後でも、そのページから呼び出されたjavascripts
ではなく、読み込まれたhtmlページ?
this linkをチェックし、最後のコメント、目的にWebChromeClient
を使用する必要があります。
他の人が示したように、alert()
を機能させるにはWebChromeClientの設定が必要です。デフォルトのWebChromeClient()を設定するだけで十分です。
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
以下のすべてのコメントをありがとう。 JavaScriptを有効にする必要があることを示したJohn Smithを含む。
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
次のコードが機能します:
private WebView mWebView;
final Activity activity = this;
// private Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
activity.setProgress(progress * 1000);
}
});
mWebView.loadUrl("file:///Android_asset/raw/NewFile1.html");
}
追加するだけ
mWebview.setWebChromeClient(new WebChromeClient());
それが動作します。
これで試すことができます、それは私のために働いた
WebView wb_previewSurvey=new WebView(this);
wb_previewSurvey.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
//Required functionality here
return super.onJsAlert(view, url, message, result);
}
});