歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android:如何在java代碼中覆蓋webview中的javascript事件

Title:如何通過點擊Android的webView中的一個元素打開native的界面(activity)

如何在webView中直接打開native的界面


設置webview支持javascript

  1. webview.getSettings().setJavaScriptEnabled(true);  
添加提供給javascript調用的類對象和接口名字
  1. webview.addJavascriptInterface(new JavascriptInterface(MyActivity.this), "mynamespace");  
供javascript調用的類的代碼
  1.   public class JavascriptInterface {  
  2.     private Activity activity;  
  3.       
  4.     public JavascriptInterface(Activity activity){  
  5.         this.activity = activity;  
  6.     }  
  7.     public void toMyPage(){  
  8.         Intent intent = new Intent();  
  9.         intent.setClass(activity, AnotherActivity.class);  
  10.         activity.startActivity(intent);  
  11.     }  
  12. }  
為webview添加WebViewClient
  1. webview.setWebViewClient(new MyWebViewClient(this, browser));  

在MyWebViewClient的onPageFinished方法中注入javascript代碼

  1. public class MyWebViewClient extends WebViewClient {  
  2.       
  3.     private Context con;  
  4.       
  5.     public PTCWebViewClient(Context con, final WebView web){  
  6.         this.con = con;  
  7.     }  
  8.   
  9.     @Override  
  10.     public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  11.         view.loadUrl(url);  
  12.         return true;  
  13.     }  
  14.     @Override  
  15.     public void onPageStarted(WebView view, String url, Bitmap favicon) {  
  16.         super.onPageStarted(view, url, favicon);  
  17.     }  
  18.     @Override  
  19.     public void onPageFinished(WebView view, String url) {  
  20.         super.onPageFinished(view, url);  
  21.         view.loadUrl("javascript:(function(){document.getElementById('snapNSendBtn').onclick=function(){window.ltamtc.toSnapNSend();}})()");  
  22.     }  
  23. }  

如此一來,每當這個webView加載完一個頁面,而且這個頁面有ID為“mySourceButton”的元素,那這個元素的點擊事件就被修改為用戶自定義的暴露給javascript調用的toMyPage()事件。一旦點擊,界面就跳轉,或者做任何你想做的事情
Copyright © Linux教程網 All Rights Reserved