您的位置:首页 > 移动开发 > Android开发

android Webview 实现js调用java代码实现Activity跳转

2015-05-05 15:27 375 查看
今天有了一个需求,在android里webview加载的html页面,要求点击html页面的按钮实现Activity的跳转。

咱是是菜鸟,webview的接触不多,于是就和度娘来了次亲密接触。在其中也发现了一些问题。现在做个笔记:

首先:

//返回到指定的Activity

@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线程执行

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

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

html

[html] view plaincopy

<!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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: