zoukankan      html  css  js  c++  java
  • 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>  
  • 相关阅读:
    【USACO】接住苹果
    【题解】任务分配
    【伪·题解】高级打字机
    【noi openjudge题解】最低通行费
    【USACO】草地排水
    【POJ2186】受牛仰慕的牛
    【NOIP2011提高组】选择客栈
    [bzoj1026][SCOI2009]windy数 (数位dp)
    [bzoj1025][SCOI2009]游戏 (分组背包)
    [bzoj1024][SCOI2009]生日快乐 (枚举)
  • 原文地址:https://www.cnblogs.com/liuguanghai/p/4479267.html
Copyright © 2011-2022 走看看