Android中Js与java的交互
来源:互联网 发布:苹果电脑mac地址怎么查 编辑:程序博客网 时间:2024/06/07 21:09
在最近项目开发中频繁用到Js与Java的交互,今天把相关知识点整理出来,欢迎大家吐槽。啪啪啪~
1、Js调用Java中的方法:
a、对WebView进行设置
mWebView.addJavascriptInterface(new DmJavaScriptInterface(),"androidObject");
在Js中androidObject就是DmJavaScriptInterface的一个对象,通过这个对象可以调用类中的相关方法
b、实现DmJavaScriptInterface类
final class DmJavaScriptInterface { DmJavaScriptInterface() { } @JavascriptInterface public void getPhoto() { Log.e(TAG,"js调用原生方法"); LsUIHelper.getInstance().showLsChoosePicListActivity(mContext, 13); } @JavascriptInterface public String getToken() { String token = getUserToken(mContext); // Log.e(TAG, "getToken token :=" + token); return token; } @JavascriptInterface public void finishSubmit() { LsFeedbackListActivity.this.finish(); } }
在Js中通过androidObject.getPhoto(),androidObject.getToken(),androidObject.finishSubmit()就可以实现调用Java端的方法。
2、Java调用Js方法
基本格式:webView.loadUrl("javascript:sayHello()");
根据是否有参数和是否有返回值可以分为以下几类(sayHello()为Js中被调用的方法名):
a、无参数无返回值
String call = "javascript:satHello()";webView.loadUrl(call);
b、有参数无返回值
String str = "你好";String call = "javascript:satHello(\""+str+"\")";webView.loadUrl(call);
c、有参数有返回值
这类比较特殊,得分两种情况。在Android4.4之前不提供调用Js函数并获取返回值的方法。解决办法是先让java调用Js的方法(有参数无返回值),然后Js在改方法中回调Java的方法,并将结果作为参数传递给Java的方法。相关代码如下:
1、Java调用Js方法
String str = "你好";String call = "javascript:satHello(\""+str+"\")";webView.loadUrl(call);
2、Js中调用Java的方法:
Function sayhello(str) {Window.androidObject.onResultContent(“hello”);}
3、Java在回调方法中获取Js函数的返回值
@JavascriptInterfacepublic void onResultContent(int result) { Log.i(LOGTAG, "onResultContentresult=" + result);}
Android4.4之后使用evaluateJavascript即可
Js端的方法:
function getGreetings() { return 1; }
Java端代码
private void testEvaluateJavascript(WebView webView) { webView.evaluateJavascript("getGreetings()", new ValueCallback<String>() { @Override public void onReceiveValue(String value) { Log.i(LOGTAG, "onReceiveValue value=" + value); } });}
0 0
- Android中Js与java的交互
- Android WebView中 JS与Java的交互
- JsBridge android中java与js交互
- android java与webview中js交互
- Android中WebView与JS的交互
- Android中webView与JS的交互
- Android中WebView与JS的交互
- android中webview与js的交互
- android中WebView与JS的交互
- Android的js与java交互
- 【Android】Android中WebView实现Java与JS交互
- Android中WebViewJavascriptBridge实现JS与java安全交互
- Android中 Webview中js与Activity的交互
- Android 与 js 的交互
- Android 与 js 的交互
- android与js的交互
- js 与 Android 的交互
- Android中JS与Java的极简交互库-SimpleJavaJsBridge
- 素数三元组
- stm32 定时器pwm输入捕获
- 创建MFC应用程序的类型:单文档+多文档+基于对话框
- Redis应用场景
- Android 实现对话框圆角功能
- Android中Js与java的交互
- asp.net配置web站点教程---图不知道跑哪里去了,坑
- 排序之表排序、基数排序及所有排序算法比较
- struct和typedef struct彻底明白了
- Android自定义横向的ProgressBar
- 单例模式
- IOS之UITextField 禁止粘贴
- POJ 2485 Highways(最小生成树-Prim)
- List-sort排序