今天有了一個需求,在android裏webview加載的html頁面,要求點擊html頁面的按鈕實現Activity的跳轉。javascript
咱是是菜鳥,webview的接觸很少,因而就和度娘來了次親密接觸。在其中也發現了一些問題。如今作個筆記:html
首先:java
- @JavascriptInterface
- public void go(final String destActivity) {
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (TextUtils.isEmpty(destActivity)) {
- finish();
- } else {
- String reqActivity=getPackageName()+"."+destActivity;
- try{
- Intent checkActivity = new Intent();
- checkActivity.setClassName(getPackageName(),reqActivity);
- startActivity(checkActivity);
- finish();
- }catch(Exception e){
- Toast.makeText(DetailActivity.this, "對不起,跳轉頁面出現異常", Toast.LENGTH_SHORT).show();
- }
-
-
- }
- }
- });
- }
這裏@JavascriptInterface 在android4.4以後,必需要加上這個註解,主要是爲了解決和js交互產生的安全問題;
mHandler.post();這個是必要的,在UI線程執行jquery
另外,關於Intent的跳轉問題,我沒有找到很好的途徑。因此作了個字符串的拼接reqActivity。有別的好的方法的話,但願能告訴我,不勝感激。android
這裏要說一下 setCacheMode,清除緩存。解決從js傳過來的參數一直都是最初的值。web
html緩存
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>
- <title></title>
- </head>
- <body>
- <input type="button" value="返回安卓的某一個界面" onclick="window.gotoPointedActivity.go('')"/>
-
- </body>
- </html>