2017-03-04 45 views
0

我有以下類。WebView未註冊onclick javascript鏈接

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 
    private WebView w; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    w = (WebView) findViewById(R.id.activity_main_webview); 
    w.getSettings().setJavaScriptEnabled(true); 
    w.getSettings().setBuiltInZoomControls(true); 
    w.getSettings().setDisplayZoomControls(false); 
    w.setClickable(true); 
    w.loadUrl("https://www.w3schools.com/js/tryit.asp?filename=tryjs_alert"); 
    } 
    @Override 
    public void onBackPressed() { 
    if(w.canGoBack())w.goBack(); 
    else super.onBackPressed(); 
    } 
} 

如果您嘗試單擊「嘗試它」警告框,則不會觸發任何操作。

如何修復WebView?

回答

1

只需設置默認WebChromeClient

w.setWebChromeClient(new WebChromeClient()); 
0

webview不會自動顯示AlertDialog。您必須使用setWebChromeClient來設置WebChromeClient,然後覆蓋onJsAlert以顯示AlertDialog

0

類似的問題在這裏問WebView blocking pop up windows? 嘗試添加這些:

webView.getSettings().setPluginsEnabled(true); 
    webView.getSettings().setAllowFileAccess(true); 
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);