android Webview 實現js調用java代碼實現Activity跳轉

今天有了一個需求,在android裏webview加載的html頁面,要求點擊html頁面的按鈕實現Activity的跳轉。javascript

咱是是菜鳥,webview的接觸很少,因而就和度娘來了次親密接觸。在其中也發現了一些問題。如今作個筆記:html

首先:java

 

  1. //返回到指定的Activity  
  2.     @JavascriptInterface  
  3.     public void go(final String destActivity) {  
  4.         mHandler.post(new Runnable() {  
  5.             @Override  
  6.             public void run() {  
  7.                 if (TextUtils.isEmpty(destActivity)) {  
  8.                     finish();  
  9.                 } else {  
  10.                         String reqActivity=getPackageName()+"."+destActivity;  
  11.                     try{  
  12.                         Intent checkActivity = new Intent();  
  13.                         checkActivity.setClassName(getPackageName(),reqActivity);  
  14.                         startActivity(checkActivity);  
  15.                         finish();  
  16.                     }catch(Exception e){  
  17.                         Toast.makeText(DetailActivity.this"對不起,跳轉頁面出現異常", Toast.LENGTH_SHORT).show();  
  18.                     }  
  19.   
  20.   
  21.                 }  
  22.             }  
  23.         });  
  24.     }  
 
 這裏@JavascriptInterface 在android4.4以後,必需要加上這個註解,主要是爲了解決和js交互產生的安全問題;

 

mHandler.post();這個是必要的,在UI線程執行jquery

另外,關於Intent的跳轉問題,我沒有找到很好的途徑。因此作了個字符串的拼接reqActivity。有別的好的方法的話,但願能告訴我,不勝感激。android

這裏要說一下 setCacheMode,清除緩存。解決從js傳過來的參數一直都是最初的值。web

html緩存

 

[html]  view plaincopy
 
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
  5.     <script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>  
  6.     <title></title>  
  7. </head>  
  8. <body>  
  9.     <input type="button" value="返回安卓的某一個界面" onclick="window.gotoPointedActivity.go('')"/>  
  10.       
  11. </body>  
  12. </html>  
相關文章
相關標籤/搜索