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

android调用js

发布时间: 2022-02-13 06:50:40

❶ android代码中webview如何调用javaScript

mWebView.setWebChromeClient(new MyWebChromeClient()); mWebView.addJavascriptInterface(new Object(){ /** * This is not called on the UI thread. Post a runnable to invoke * loadUrl on the UI thread. */ public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { mWebView.loadUrl("javascript:wave()"); } }); } }, "demo"); 同理,在html中必须有一个名为demo的对象调用clickOnAndroid()方法。 /** * Provides a hook for calling "alert" from javascript. Useful for * debugging your javascript. */ final class MyWebChromeClient extends WebChromeClient { @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { result.confirm(); return super.onJsAlert(view, url, message, result); } }

❷ android调用js @javascriptinterface报错

不要加在构造方法上,加在你要调用的方法上。

❸ 如何在android平台上使用js直接调用Java方法

例如,在下面的例子中我们会调用一个Java方法,它弹出一个android的Alert对话框。
//给我们熟悉的AppActivity类稍微加点东西
public class AppActivity extends Cocos2dxActivity {

private static AppActivity app = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
app = this;
}

public static void showAlertDialog(final String title,final String message) {

//这里一定要使用runOnUiThread
app.runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog alertDialog = new AlertDialog.Builder(app).create();
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.setIcon(R.drawable.icon);
alertDialog.show();
}
});
}
}

然后我们在js中调用
jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "showAlertDialog", "(Ljava/lang/String;Ljava/lang/String;)V", "title", "hahahahha");

❹ 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()");
}
});
}
});
}
}

❺ Android调用js的问题

android怎样调用js文件里面的方法
如果多个线程同时访问一个集合,而其中至少一个线程修改了该集合,那么它必须 保持外部同步。这通常是通过对自然封装该集合的对象执行同步操作来完成的。如果不存在这样的对象,则应该使用 Collections.synchronizedSet 方法来“包装”集合。最好在创建时完成这一操作,以防止对 HashSet 实例进行意外的不同步访问:
Set s = Collections.synchronizedSet(new HashSet(...));

❻ android java怎么调用webview中js方法

Android平台上使用js调用java方法,主要是通过webview控件提供的 webview.addJavascriptInterface(new Person(this), "per"); 这个方法将java对象注入到js中,然后可以在js中通过调用该java对象的方法来实现回调,如下代码:
1.html文件,demo.html<html> <head> <script type="text/javascript" > function updateHtml(type,type2){ document.getElementById("content").innerHTML = "弹出对话框,测试"+type+type2; alert("dialog"); } </script> </head> <body> 这是一个js与android的例子 <a onClick="window.ceshi.startFunction()" href="">弹出对话框</a> 调用对象方法 <a onClick="per.print()" href="">调用对象方法</a> <span id="content"></span> </body> </html>

❼ android中怎么调用javascript函数

思路: 1、需要使用webview打开网页 2、设置webview支持脚本 3、然后通过webview的loadUrl方式进行js函数调用 代码: webview.getSettings().setJavaScriptEnabled(true);webview.addJavascriptInterface(object,"name");//把Name="name"的对象...

❽ 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中调用本地js文件里的方法并得到返回值其方法如下: Android中内置了WebKit模块,而该模块的Java层视图类就是WebView,所有需要使用Web浏览器功能的Android都需要创建该视图类对象显示和处理请求的网络资源。目前WebKit支持Http、Https、Ftp和JavaScript请求。下面是在Android中调用JavaScript方法以及如何在js中调用本地方法。 1、在Assets下放一个简单的html文件jstest/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 package com.harold.jstest; import com.harold.base.JSKit; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.widget.Button; public class MainActivity extends Activity { private WebView mWebView; private Button btnShowInfo; private JSKit js; private Handler mHandler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //初始化控件 mWebView = (WebView) findViewById(R.id.wv_test); btnShowInfo = (Button) findViewById(R.id.btn_showmsg); //实例化js对象 js = new JSKit(this); //设置参数 mWebView.getSettings().setBuiltInZoomControls(true); //内容的渲染需要webviewChromClient去实现,设置webviewChromClient基类,解决js中alert不弹出的问题和其他内容渲染问题 mWebView.setWebChromeClient(new WebChromeClient()); mWebView.getSettings().setJavaScriptEnabled(true); //把js绑定到全局的myjs上,myjs的作用域是全局的,初始化后可随处使用 mWebView.addJavascriptInterface(js, "myjs"); mWebView.loadUrl("file:///android_asset/jstest.html"); btnShowInfo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mHandler.post(new Runnable() { @Override public void run() { //调用 HTML 中的javaScript 函数 mWebView.loadUrl("javascript:showMsg()"); } }); } }); } } 4、最后是绑定全局js的类JSKit.java package com.harold.base; import android.widget.Toast; import com.harold.jstest.MainActivity; public class JSKit { private MainActivity ma; public JSKit(MainActivity context) { this.ma = context; } public void showMsg(String msg) { Toast.makeText(ma, msg, Toast.LENGTH_SHORT).show(); } } 例子比较简单,代码里都加了注释,这里就不多说了,本示例用的本地的html,如果访问网络中的网页,别忘记在AndroidManifest.xml中加权限 <uses-permission android:name="android.permission.INTERNET"/>

❿ android WebApp 集成方式怎么使用java调用js

例如,在下面的例子中我们会调用一个Java方法,它弹出一个android的Alert对话框。 //给我们熟悉的AppActivity类稍微加点东西 public class AppActivity extends Cocos2dxActivity { private static AppActivity app = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = this; } public static void showAlertDialog(final String title,final String message) { //这里一定要使用runOnUiThread app.runOnUiThread(new Runnable() { @Override public void run() { AlertDialog alertDialog = new AlertDialog.Builder(app).create(); alertDialog.setTitle(title); alertDialog.setMessage(message); alertDialog.setIcon(R.drawable.icon); alertDialog.show(); } }); } } 然后我们在js中调用 jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "showAlertDialog", "(Ljava/lang/String;Ljava/lang/String;)V", "title", "hahahahha");

热点内容
校考上传照片 发布:2025-03-15 23:30:02 浏览:850
windowsxp服务器搭建ftp 发布:2025-03-15 23:17:52 浏览:312
2014年数据库工程师 发布:2025-03-15 23:07:42 浏览:245
创见存储卡质量怎么样 发布:2025-03-15 23:07:37 浏览:304
苹果2g和安卓哪个快 发布:2025-03-15 22:52:48 浏览:713
airpods怎么连接安卓手机 发布:2025-03-15 22:47:11 浏览:295
安卓已经删除的app在哪里找 发布:2025-03-15 22:42:09 浏览:434
海量照片存储 发布:2025-03-15 22:23:07 浏览:163
androidgif控件 发布:2025-03-15 22:10:51 浏览:339
我的世界手机版非常好玩的服务器推荐 发布:2025-03-15 22:04:48 浏览:179