导航:首页 > 编程语言 > webviewjs交互android

webviewjs交互android

发布时间:2025-06-13 02:23:31

① androidwebview加载本地js怎么实现交互

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET" />

第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET"/>

② 在Android上怎样实现java和JS交互

java和js交互分为三种情况,分别是:

1 调用网页上的js代码

Android中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");

2 网页java代码的方法

在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:

mWebView.addJavascriptInterface(newObject(){
publicvoidclickOnAndroid(){
mHandler.post(newRunnable(){
publicvoidrun(){
Toast.makeText(Test.this,"测试调用java",Toast.LENGTH_LONG).show();
}
});
}
},"demo");

在网页中,只需要像调用js方法一样,进行调用就可以

<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>

3 Java代码调用js并传参

首先需要带参数的js函数,如functiontest(str),然后只需在调用js时传入参数即可,如下所示:

mWebView.loadUrl("javascript:test('aa')");

4.Js中调用java函数并传参

首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:

mWebView.addJavascriptInterface(newObject(){
publicvoidclickOnAndroid(finalinti){
mHandler.post(newRunnable(){
publicvoidrun(){
intj=i;
j++;
Toast.makeText(Test.this,"测试调用java"+String.valueOf(j),Toast.LENGTH_LONG).show();
}
});
}
},"demo");

然后在html页面中,利用如下代码<divid='b'><aonclick="window.demo.clickOnAndroid(2)">b.c</a></div>,

下面是安卓无忧中js 与安卓相互调用的效果图,可以网络一下安卓无忧,点击源码,看看里面的源码。

③ webview与js交互的参数有没有限制

webview与js交互的参数有没有限制
网页的JS代码调用ANDROID中JAVA代码的方法
在版网页中调权用java代码、需要在webview控件中添加javascriptInterface

contentWebView = (WebView) findViewById(R.id.webview);
//启用javascript
contentWebView.getSettings().setJavaScriptEnabled(true);
contentWebView.addJavascriptInterface(this, "js对象名");

在Activity中定义一个要被js调用的方法、src为js传递过来的参数、如果没有不传也可以的哈

public void jsFunction(final String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
runOnUiThread(new Runnable() {
@Override
public void run() {
//在里对Android应用的UI进行处理
}
});
}

④ Android-webview和js脚本语言交互的时候怎么获取js方法的返回值

您好,很高兴能帮助您
Android中webview和js之间的交互
1.android中利用webview调用网页上的js代码。
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2. 网页上调用android中java代码的方法
在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
在网页中,只需要像调用js方法一样,进行调用就可以
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
3. Java代码调用js并传参
首先需要带参数的js函数,如function test(str),然后只需在调用js时传入参数即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中调用java函数并传参
首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid(final int i) {
mHandler.post(new Runnable() {
public void run() {
int j = i;
j++;
Toast.makeText(Test.this, "测试调用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
然后在html页面中,利用如下代码<div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>,
即可实现调用

你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,

⑤ android与javascript的交互可以不通过webview吗

在android的应用程序中,可以直接调用webview中的javascript代码,而webview中的javascript代码,也可以去调用ANDROID应用程序(也就是JAVA部分的代码).下面举例说明之:

1JAVASCRIPT脚本调用android程序

要在webview中,调用addJavascriptInterface(OBJ,interfacename)
其中,obj为和javascript通信的应用程序,interfacename为提供给JAVASCRIPT调用的
名称,设置如下:

?
1
2
3
4
5
WebViewwebView=newWebView(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(getIntent().getCharSequenceExtra("url").toString());
//设定JavaScript脚本代码的界面名称是”android”
webView.addJavascriptInterface(this,"android");
其中WEBVIEW调用的HTML页中,JS如下:

?
1
2
3
4
<scripttype="text/javascript">
functionok(){
android.js(document.forms[0].elements[0].value,document.forms[0].elements[1].value);
}
而这个android.js在哪呢?那是在应用程序中的

?
1
2
3
4
//JavaScript脚本代码可以调用的函数js()处理
publicvoidjs(Stringaction,Stringuri){
...../
}
这个JS中就是处理JAVASCRIPT发送过来的请求了.

2)下面的例子,当WEBVIEW网页中输入后,点提交按钮,会跟ANDROID的应用程序进行交互

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
WebViewwebView=newWebView(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(newMyWebChromeClient());
webView.loadUrl(getIntent().getCharSequenceExtra("url").toString());

//onJsAlert()函数接收到来自HTML网页的alert()警告信息
publicbooleanonJsAlert(WebViewview,Stringurl,Stringmessage,JsResultresult){
if(message.length()!=0){
AlertDialog.Builderbuilder=newAlertDialog.Builder(JExample02.this);
builder.setTitle("FromJavaScript").setMessage(message).show();
result.cancel();
returntrue;
}
returnfalse;
}
而HTML页中的JS事件为:

?
1
<inputtype="button"value="alert"onclick="alert(document.forms[0].elements[0].value)">
特别提示下,在自定义的MyWebChromeClient())中,除了可以重写onJSAlert外,还可以
重写onJsPrompt,onJsConfirm等,可以参考
http://618119.com/archives/2010/12/20/199.html

3)下面这个例子,先显示第一张图片,点一点后,再显示第2张图片
HTMLJS中:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<scriptlanguage="javascript">
functionchangeImage02(){
document.getElementById("image").src="navy02.jpg";
}
functionchangeImage01(){
document.getElementById("image").src="navy01.jpg";
}
</script>
</head>
<body>
<aonClick="window.demo.onClick()">
<imgid="image"src="navy01.jpg"/></a>
</body>
当点<aonClick="window.demo.onClick()">
后,调用ANDROID应用程序中的处理部分,看程序:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
webView.addJavascriptInterface(newJSInterface(),"demo");

publicfinalclassJSInterface{
//JavaScript脚本代码可以调用的函数onClick()处理

publicvoidonClick(){
handler.post(newRunnable(){
publicvoidrun(){
if(flag==0){
flag=1;
webView.loadUrl("javascript:changeImage02()");
}else{
flag=0;
webView.loadUrl("javascript:changeImage01()");
}
}
});
}
}
可以看到,ANDROID中,通过webView.loadUrl去调用HTML页面中的JS

阅读全文

与webviewjs交互android相关的资料

热点内容
有损压缩文件格式 浏览:459
网络不得传播的内容包括哪些 浏览:197
英语同步课本app哪个好 浏览:84
铁甲雄兵升级箱子 浏览:379
怎么用美图秀秀拍视频教程 浏览:122
怎么黑掉网站 浏览:471
网络做外汇怎么做 浏览:979
jsp文件管理系统源码下载 浏览:327
苹果电脑微信文件夹在哪里 浏览:570
将文件从hdfs取回本地 浏览:794
邮件中的图片怎么保存到本地文件夹中 浏览:140
魔兽改建显血工具 浏览:386
电脑微信下载文件图片 浏览:234
网站怎么更换服务器 浏览:350
文件夹多个word名称如何一起复制 浏览:319
固定利率app哪个好 浏览:353
nodejs接受post数据类型 浏览:209
数据库提问 浏览:899
用户名密码的组成 浏览:257
编程怎么用程序画出五角星 浏览:372

友情链接