首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
移动开发
> 详细
Android-----js和android的互调
时间:
2016-05-16 23:16:38
阅读:
244
评论:
0
收藏:
0
[点我收藏+]
标签:
http://code.google.com/p/apps-for-android/source/browse/trunk/Samples/WebViewDemo/
我对其进行了修改,并加了简单的注释,这个例子的不仅是对js的操作,它还对android浏览器做了简单的介绍,
这些我会在注释中一一讲解。
Javascript弹出框有如下三种:
alert();
window.confirm(
"Are you srue?");
window.prompt(
"Please input some word";,
"this is text");
WebChromeClient 中对三种dialog进行了捕捉,但不幸的是,并没有回调函数可以使用,
或者说不能获得用户是点击“OK”还是“CANCEL”的操作结果。
个人以为,这些方法的设置是为了对一些涉及到html操作的应用程序进行测试时使用的。
在WebChromeClient中还有以下的方法:
onProgressChanged(WebView view,
int newProgress);
onReceivedIcon(WebView view, Bitmap icon);
onReceivedTitle(WebView view, String title);
onRequestFocus(WebView view);
onCloseWindow(WebView window);
onProgressChanged(WebView view,
int newProgress)
这些方法的使用我会在以后的博文中讲到.
请大家先看今天讲解的重点
public
class WebViewDemo
extends Activity {
private
static
final String LOG_TAG =
"WebViewDemo";
private WebView mWebView;
private TextView mReusultText ;
private Handler mHandler =
new Handler();
@Override
public
void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
//获得浏览器组件
//WebView就是一个简单的浏览器
//android浏览器源码存在于LINUX\android\package\apps\Browser中
//里面的所有操作都是围绕WebView来展开的
mWebView = (WebView) findViewById(R.id.webview);
mReusultText = (TextView) findViewById(R.id.resultText);
//WebSettings 几乎浏览器的所有设置都在该类中进行
WebSettings webSettings = mWebView.getSettings();
webSettings.setSavePassword(
false);
webSettings.setSaveFormData(
false);
webSettings.setJavaScriptEnabled(
true);
webSettings.setSupportZoom(
false);
mWebView.setWebChromeClient(
new MyWebChromeClient());
/*
* DemoJavaScriptInterface类为js调用android服务器端提供接口
* android 作为DemoJavaScriptInterface类的客户端接口被js调用
* 调用的具体方法在DemoJavaScriptInterface中定义:
* 例如该实例中的clickOnAndroid
*/
mWebView.addJavascriptInterface(
new DemoJavaScriptInterface(),
"androd");
mWebView.loadUrl(
"file:///android_asset/page.html");
}
final
class DemoJavaScriptInterface {
DemoJavaScriptInterface() {}
/**
* 该方法被浏览器端调用
*/
public
void clickOnAndroid() {
mHandler.post(
new Runnable() {
public
void run() {
//调用js中的onJsAndroid方法
mWebView.loadUrl(
"javascript:onJsAndroid()");
}
});
}
}
/**
* 继承WebChromeClient类
* 对js弹出框时间进行处理
*
*/
final
class MyWebChromeClient
extends WebChromeClient {
/**
* 处理alert弹出框
*/
@Override
public
boolean onJsAlert(WebView view,String url,
String message,JsResult result) {
Log.d(LOG_TAG,
"onJsAlert:"+message");
mReusultText.setText(
"Alert:"+message);
//对alert的简单封装
new AlertDialog.Builder(WebViewDemo.
this).
setTitle(
"Alert").setMessage(message).setPositiveButton(
"OK",
new DialogInterface.OnClickListener() {
@Override
public
void onClick(DialogInterface arg0,
int arg1) {
//TODO
}
}).create().show();
result.confirm();
return
true;
}
/**
* 处理confirm弹出框
*/
@Override
public
boolean onJsConfirm(WebView view, String url, String message,
JsResult result) {
Log.d(LOG_TAG,
"onJsConfirm:"+message);
mReusultText.setText(
"Confirm:"+message);
result.confirm();
return
super.onJsConfirm(view, url, message, result);
}
/**
* 处理prompt弹出框
*/
@Override
public
boolean onJsPrompt(WebView view, String url, String message,
String defaultValue, JsPromptResult result) {
Log.d(LOG_TAG,
"onJsPrompt:"+message);
mReusultText.setText(
"Prompt input is :"+message);
result.confirm();
return
super.onJsPrompt(view, url, message, message, result);
}
}
}
分类:
Android
好文要顶
关注我
收藏该文
OAKPIP
关注 - 10
粉丝 - 40
+加关注
4
0
(请您对文章做出评价)
«
上一篇:
Android-----WebView使用
»
下一篇:
Android-----RelativeLayout属性
Android-----js和android的互调
标签:
原文地址:http://www.cnblogs.com/lenkevin/p/5499833.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
关闭苹果IOS app自动更新
2021-07-29
开发一个即时通讯App
2021-07-28
iOS 跳转App Store进行评分
2021-07-26
诺基亚短信生成!太好玩了
2021-07-26
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
2021-07-26
Android系统编程入门系列之界面Activity响应丝滑的传统动画
2021-07-26
uniapp h5,app两端复制文本
2021-07-22
uni-app滚动视图容器(scroll-view)之监听上拉事件
2021-07-21
新型横向移动工具原理分析、代码分析、优缺点以及检测方案
2021-07-19
Android系统编程入门系列之界面Activity交互响应
2021-07-19
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!