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


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

咱是是菜鳥,webview的接觸不多,於是就和度娘來了次親密接觸。在其中也發現了一些問題。現在做個筆記:

首先:

 

  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線程執行

另外,關於Intent的跳轉問題,我沒有找到很好的途徑。所以做了個字符串的拼接reqActivity。有別的好的方法的話,希望能告訴我,不勝感激。

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

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>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM