今天有了一个需求,在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. }
 
 这里@JavascriptInterface 在android4.4之后,必须要加上这个注解,主要是为了解决和js交互产生的安全问题;

mHandler.post();这个是必要的,在UI线程执行

另外,关于Intent的跳转问题,我没有找到很好的途径。所以做了个字符串的拼接reqActivity。有别的好的方法的话,希望能告诉我,不胜感激。

这里要说一下 setCacheMode,清除缓存。解决从js传过来的参数一直都是最初的值。

html

  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. </body>
  11. </html>

android Webview 实现js调用java代码实现Activity跳转的更多相关文章

  1. Android的WebView通过JS调用java代码

    做项目时候会遇到我们用WebView 打开一个web,希望这个web可以调用自己的一些方法,比如我们在进一个web页面,然后当我们点击web上的某个按钮时,希望能判断当前手机端是否已经登录,如果未登录 ...

  2. android webView开发之js调用java代码示例

    1.webView设置 webView.getSettings().setJavaScriptEnabled(true);//设置支持js webView.addJavascriptInterface ...

  3. js调用java代码返回解决方案

    版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 今天封装一个加密标签,遇到一个问题,我需要对页面上的数据调用java后台代码进行解密,而标签里只能通过js获取到数据,所以就遇 ...

  4. 六、Android学习笔记_JNI_c调用java代码

    1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // ...

  5. Android学习笔记_JNI_c调用java代码

    1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // ...

  6. Xamarin Android Webview中JS调用App中的C#方法

    参考链接:https://github.com/xamarin/recipes/tree/master/Recipes/android/controls/webview/call_csharp_fro ...

  7. Android webview js 调用java方法报错"Uncaught TypeError: Object [object Object] has no method xx

    webview开发,在Android4.4下js调用java方法报错"Uncaught TypeError: Object [object Object] has no method,同样的 ...

  8. android控件之webview和js与java交互

    首先添加权限:<uses-permission android:name="android.permission.INTERNET"/> 布局文件: <Relat ...

  9. Android 使用js调用Java

    效果如: 主要用到一个接口类:MyObject package com.example.jsdemo; import android.content.Context; import android.s ...

随机推荐

  1. #423 Div2 C

    #423 Div2 C 题意 给出 n 个字符串以及他们在 S 串中出现的位置,求字典序最小的 S 串.保证给出的字符串不会冲突. 分析 模拟就好.用并查集思想优化,数组 nxt[i] 表示从 i 开 ...

  2. OpenJ_Bailian - 1037 A decorative fence

    Discription Richard just finished building his new house. Now the only thing the house misses is a c ...

  3. POJ 2785 4 Values whose Sum is 0(哈希表)

    [题目链接] http://poj.org/problem?id=2785 [题目大意] 给出四个数组,从每个数组中选出一个数,使得四个数相加为0,求方案数 [题解] 将a+b存入哈希表,反查-c-d ...

  4. 解决android客户端使用soap与服务器通讯错误415

    在编写一个android client与服务器使用soap通讯,虽然能连上但不是正常的200代码,而是415,经查询是"HTTP 415 错误 – 不 支持的媒体类型(Unsupported ...

  5. sql server mvp 發糞塗牆

    http://blog.csdn.net/dba_huangzj/article/details/38295753

  6. tiny4412 串口驱动分析七 --- log打印的几个阶段之内核启动阶段(earlyprintk)

    作者:彭东林 邮箱:pengdonglin137@163.com 开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 ...

  7. 如何使用apache的 work模式还是 prefork 模式

    注意: 2.4之前版本默认为prefork, 2.4已经变为event模式.三种模式比较: http://www.cnblogs.com/fnng/archive/2012/11/20/2779977 ...

  8. c:foreach如何输出序号

    关键在于<c:forEach>的varStatus属性,具体代码如下: <table width="500" border="0" cells ...

  9. bind域名dns解析及主从服务的配置

    bind域名dns解析及主从服务的配置 1.dns解析介绍     人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...

  10. 关于批量插入数据之我见(100万级别的数据,mysql)

    因前段时间去面试,问到怎样高效向数据库插入10万条记录,之前没处理过类似问题.也没看过相关资料,结果没答上来,今天就查了些资料.总结出三种方法: 測试数据库为mysql!!! 方法一: public ...