今天有了一个需求,在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. java有自动垃圾回收机制

    当垃圾收集器判断已经没有任何引用指向对象的时候,会调用对象的finalize方法来释放对象占据的内存空间~ java中垃圾回收以前听老师讲好像是内存满了他才去做一次整体垃圾回收,在回收垃圾的同时会调用 ...

  2. springboot 2.0+ 自定义拦截器

    之前项目的springboot自定义拦截器使用的是继承WebMvcConfigurerAdapter重写常用方法的方式来实现的. 以下WebMvcConfigurerAdapter 比较常用的重写接口 ...

  3. Unity3D的主要类图

    原文:http://blog.teotigraphix.com/2011/05/17/unity3d-uml-gameobject-cheat-sheet/ 1. GameObject_Structu ...

  4. elasticsearch 插件使用

    5.3.0新版本好像插件和开源的项目没有以前的多,官网就那么几个 常用的先安装Kibana: 提供炫丽的可视化图形展示并且作为elasticsearch的搜索的小清新客户端 1.下载安装包  wget ...

  5. App Distribution Guide (二)

    Configuring Your Xcode Project for Distribution  You can edit your project settings anytime, but som ...

  6. 用DotSpatial下载谷歌瓦片图并展示到地图控件上 【转】

    http://blog.csdn.net/caoshiying/article/details/51991647 上一篇文章讲解如何加载各地图的WMS地图服务.虽然不涉及到瓦片,但是每次地图刷新都要请 ...

  7. MySQL增加访问ip

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION; flush privileges;

  8. 一个java调用python的问题

    使用 ProcessBuilder List<String> commands = new ArrayList(); commands.add("python"); c ...

  9. zookeeper启动错误 ---- Unable to load database on disk

    zk启动报错 解决办法,进入zkdata目录删除version-2下面的所有文件 参考: https://issues.apache.org/jira/browse/ZOOKEEPER-1546 [h ...

  10. MySQL实现删除数据左右空格trim() 左空格ltrim() 右空格rtrim()

    2017-03-23 select trim(字段) from 表         删除左右空格 select ltrim(字段) from 表        删除左空格 select rtrim(字 ...