当前位置:首页 » 安卓系统 » android调js

android调js

发布时间: 2024-03-11 11:35:13

‘壹’ android webview js 交互 怎么调用js 的new

android webview js 交互 调用
第一步:
mainfest.xml中加入网络权限

[java] view plain
<uses-permission android:name="android.permission.INTERNET" />
第二步:

加载本地写好的html文件(定义好js中提供给android调用的方法 funFromjs(),和android提供给js调用的对象接口fun1FromAndroid(String name)),放在 assets目录下。

[html] view plain
<body>
<a>js中调用本地方法</a>
<script>

function funFromjs(){
document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js";
}
var aTag = document.getElementsByTagName('a')[0];
aTag.addEventListener('click', function(){
//调用android本地方法
myObj.fun1FromAndroid("调用android本地方法fun1FromAndroid(String name)!!");
return false;
}, false);
</script>
<p></p>
<div id="helloweb">

</div>
</body>

第三步:

实现android工程与js交互的相关代码
android主题代码:

[java] view plain
@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
initViews();

//设置编码
mWebView.getSettings().setDefaultTextEncodingName("utf-8");
//支持js
mWebView.getSettings().setJavaScriptEnabled(true);
//设置背景颜色 透明
mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));
//设置本地调用对象及其接口
mWebView.addJavascriptInterface(new JavaScriptObject(mContext), "myObj");
//载入js
mWebView.loadUrl("file:///android_asset/test.html");

//点击调用js中方法
mBtn1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
mWebView.loadUrl("javascript:funFromjs()");
Toast.makeText(mContext, "调用javascript:funFromjs()", Toast.LENGTH_LONG).show();
}
});

}
js调用的android对象方法定义

[java] view plain
public class JavaScriptObject {
Context mContxt;
@JavascriptInterface //sdk17版本以上加上注解
public JavaScriptObject(Context mContxt) {
this.mContxt = mContxt;
}

public void fun1FromAndroid(String name) {
Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();
}

public void fun2(String name) {
Toast.makeText(mContxt, "调用fun2:" + name, Toast.LENGTH_SHORT).show();
}
}

‘贰’ android 中怎么执行js脚本

android要执行脚本,只有通过本地的webview打开脚本页面。

调用步骤

1、设置webview支持脚本

webSettings.setJavaScriptEnabled(true);

2、打开脚本页面

mWebView.loadUrl("file:///android_asset/demo.html");//这里打开该app的asset目录下的demo.html,里面含有wave函数脚本

3、调用脚本

mWebView.loadUrl("javascript:wave()");//调用打开页面中的wave函数

‘叁’ android里如何调用Js里的函数

Android中内置了WebKit模块,而该模块的Java层视图类就是WebView,所有需要使用Web浏览器功能的Android都需要创建该视图类对象显示和处理请求的网络资源。目前WebKit支持Http、Https、Ftp和JavaScript请求。


1、在Assets下放一个简单的html文件jstest.html

<HTML>
<HEAD>
<metaname="viewport"content="width=device-width,target-densitydpi=device-dpi"/>
<METAhttp-equiv="Content-Type"content="text/html;charset=UTF-8">
<script>
functionshowMsg(){
alert("helloworld!");
}
functionshowMsgInAndroid(){
myjs.showMsg('helloinandroid!');
}
</script>
</HEAD>
<BODY>
<span>测试js使用</span>
<buttonid='btntest'onclick='showMsgInAndroid()'>调用android方法</button>
</BODY>
</HTML>


2、布局文件main.xml

<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayout
android:id="@+id/rl_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<WebView
android:id="@+id/wv_test"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/btn_showmsg"/>
<Button
android:id="@+id/btn_showmsg"
android:layout_width="200dip"
android:layout_height="40dip"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="调用html中js方法"/>
</RelativeLayout>

3、然后是Activity,MainActivity.java


packagecom.harold.jstest;
importcom.harold.base.JSKit;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.webkit.WebChromeClient;
importandroid.webkit.WebView;
importandroid.widget.Button;
{
privateWebViewmWebView;
privateButtonbtnShowInfo;
privateJSKitjs;
privateHandlermHandler=newHandler();
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化控件
mWebView=(WebView)findViewById(R.id.wv_test);
btnShowInfo=(Button)findViewById(R.id.btn_showmsg);
//实例化js对象
js=newJSKit(this);
//设置参数
mWebView.getSettings().setBuiltInZoomControls(true);
//内容的渲染需要webviewChromClient去实现,
//设置webviewChromClient基类,解决js中alert不弹出的问题和其他内容渲染问题
mWebView.setWebChromeClient(newWebChromeClient());
mWebView.getSettings().setJavaScriptEnabled(true);
//把js绑定到全局的myjs上,myjs的作用域是全局的,初始化后可随处使用
mWebView.addJavascriptInterface(js,"myjs");
mWebView.loadUrl("file:///android_asset/jstest.html");
btnShowInfo.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
mHandler.post(newRunnable(){
@Override
publicvoidrun(){
//调用HTML中的javaScript函数
mWebView.loadUrl("javascript:showMsg()");
}
});
}
});
}
}

‘肆’ 安卓和javascript交互必须通过webView吗可以用安卓的其他控件调用js吗还有他们能通过volley交互吗

您好,很高兴能帮助您, 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>, 即可实现调用 你的采纳是我前进的动力,还有不懂的地方,请你继续“追问”! 如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助!

‘伍’ 安卓上本地网页如何用JS或HTML获取本地路径

在开发过程中有时会遇到这种情况,需要调用js的一些方法,又不需要显示h5界面。比如,在你开发的产品中,PC、h5,移动端(Android、IOS)都需要使用到同一个算法,而且这个算法又非常的复杂,若每个端都写一边,不仅浪费时间,而且如果算法涉及到复杂的数字计算,那么就可能会导致每个端写出来的算法结果不一致。

所以这个时候,使用js编写一个通用算法是比较理想的一个解决方法,因为pc、h5、Android、ios都可以直接调用js代码,并执行计算结果。
Android调用本地js步骤:步骤一:在assets下添加你需要执行的js代码步骤二:Android代码 WebView mWebView = null;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (mWebView == null) {
initWebView();
}
getPrxResult();
}

/**
* 调用js方法
*/
private void getPrxResult(){
String e ="";
String t ="";
String url2 = "javascript:jclqBonusRange(" + e + "," + t + ")"; //调用js方法
mWebView.loadUrl(url2) } /*** 初始化webview
*protected void initWebView() {
mWebView = new WebView(this);
mWebView.getSetting

热点内容
预编译查询 发布:2024-11-28 05:32:35 浏览:312
山东青岛iptv设置密码是多少 发布:2024-11-28 05:30:26 浏览:315
小鹏的解压 发布:2024-11-28 05:10:07 浏览:21
ibm存储售后 发布:2024-11-28 05:00:39 浏览:32
python监控进程脚本 发布:2024-11-28 04:54:47 浏览:180
android加载html页面 发布:2024-11-28 04:54:38 浏览:901
噻苯隆如何配置 发布:2024-11-28 04:53:56 浏览:395
普通电脑改服务器风道风罩 发布:2024-11-28 04:52:28 浏览:454
什么安卓手机像8p一样 发布:2024-11-28 04:43:17 浏览:225
连接数据库参数 发布:2024-11-28 04:43:15 浏览:808