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>
咱是是菜鸟,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>
相关文章推荐
- Android的WebView通过JS调用java代码
- Android WebView的使用(三)js、java代码调用出错
- android中利用webview调用网页上的js代码 Java代码调用js并传递参数
- android webView开发之js调用java代码示例
- Android之Webview使用Java代码和JS相互调用
- Android WebView的js中调用java代码
- WebView实现js与java代码的互相调用
- Android的WebView通过JS调用java代码
- Android基于WebView的Java和JS相互调用实现步骤,附带精简可行的DEMO
- Android中webview里js和java的相互调用--含代码demo解析
- Android的WebView中js与java代码相互调用
- Android的WebView中js与java代码相互调用
- Android WebView JS不能调用Java对象的问题
- IOS 与 Android WebView 中 JS 调用原生代码
- android代码混淆之webView中JS无法调用
- android webview 调用js实现图像选择并上传
- Android webview js 调用java方法报错"Uncaught TypeError: Object [object Object] has no method xx
- Android 利用WebViewJavascriptBridge 实现js和java的交互(一)
- Android 利用WebViewJavascriptBridge 实现js和java的交互(一)
- Android WebView加载本地html并实现Java与JS交互