第一種是經過webview提供的js和Java溝通的接口進行javascript
public void addJavascriptInterface(Object object, String name)
而後,在JavaScript裏能夠經過name來引用到object對象裏有@JavascriptInterface註解的方法html
Java代碼java
WebView wv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wv = (WebView)findViewById(R.id.webView); wv.getSettings().setJavaScriptEnabled(true); wv.addJavascriptInterface(this, "nativeMethod"); wv.loadUrl("file:///android_asset/index.html"); } @JavascriptInterface public void toActivity(String activityName) { //此處應該定義常量對應,同時提供給web頁面編寫者 if(TextUtils.equals(activityName, "a")){ startActivity(new Intent(this,AActivity.class)); }else{ startActivity(new Intent(this,BActivity.class)); } }
javascript代碼android
<!DOCTYPE HTML> <html> <script type="text/javascript"> function gotoActivity (activity) { nativeMethod.toActivity(activity); } </script> <body> <button onClick="gotoActivity('a')">gotoActivity A</button> <button onClick="gotoActivity('b')">gotoActivity B</button> </body> </html>
以上是第一種方法,在index.html頁面能夠跳轉到AActivity和BActivity。web