android webview native与JavaScript相互调用 java与JavaScript相互调用
来源:互联网 发布:朕是什么意思网络此意 编辑:程序博客网 时间:2024/05/16 07:46
根据文章android webview 加载本地文件搭建实现一个简单的webview应用
在oncreat方法里面添加几行代码:
webView.setWebChromeClient(new WebChromeClient(){ }); webView.setWebViewClient(new WebViewClient(){ }); webView.addJavascriptInterface(new MyJavascriptInterface(MainActivity.this,webView),"jsbrige");
关键在于最后一行代码:
最后一个参数jsbrige指的是JavaScript调用Java的时候方法名最前面的字符串
webView.addJavascriptInterface(new MyJavascriptInterface(MainActivity.this,webView),"jsbrige");
新写一个类,起名MyJavascriptInterface
里面的代码如下:
package webview.fanruitian.cn.webview;import android.app.Activity;import android.os.Handler;import android.webkit.JavascriptInterface;import android.webkit.WebView;import android.widget.Toast;/** * Created by FRT on 2017/5/13. */public class MyJavascriptInterface { private Activity activity; private WebView webView; private Handler handler = new Handler(){}; MyJavascriptInterface(Activity activity,WebView webView) { this.activity = activity; this.webView = webView; } @JavascriptInterface public void toast(final String msg) { handler.post(new Runnable() { @Override public void run() { Toast.makeText(activity, msg, Toast.LENGTH_SHORT).show(); } }); }}
这里面实现一个功能,当JavaScript调用jsbrige.toast("hello")的时候回自动调用android自带的toast方法:
修改index.html源码
增加一个button,id是test_jsbrige
当点击这个button的时候自动执行方法:
$("#test_jsbrige").click(function(){ jsbrige.toast("hello"); });
测试:
JavaScript调用Java成功!
------------------------------------------------------------------------------------------------------------------------------------------------
下面Java调用JavaScript方法:
简单起见重写了按键方法:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==KeyEvent.KEYCODE_BACK) { handler.post(new Runnable() { @Override public void run() { webView.loadUrl("javascript:callback('sadsaaadasdsad')"); } }); return true; } return super.onKeyDown(keyCode, event); }
当点击返回的时候先起了一个线程线程里面执行JavaScript中的callback方法
为了防止JavaScript阻塞主线程,所以起了一个线程
handler应该先声明
private Handler handler = new Handler(){ };
在JavaScript中增加方法:
function callback(msg) { alert(msg); }
成功!
0 0
- android webview native与JavaScript相互调用 java与JavaScript相互调用
- Android WebView与JavaScript代码相互调用
- Android webview中JavaScript与Java方法的相互调用
- android与javascript相互调用
- android与javascript相互调用
- android与javascript相互调用
- Android中如何实现WebView与JavaScript的相互调用
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android关于JavaScript与Native方法相互调用
- Android WebView JAVA 与 JS 相互调用
- Android 实现WebView与JavaScript相互调用//支持javaScript对android方法调用 mWebView.addJavascriptInterface(n
- Android中WebView的使用总结及Java与Javascript的相互调用
- 利用SSH端口转发作内网穿透
- 框架学习---1、angular简易demo~~购物车
- 用C语言模仿Python函数
- spring boot(4)-html和templates
- HDU 1702 ACboy needs your help again!(栈和队列的试用)
- android webview native与JavaScript相互调用 java与JavaScript相互调用
- Java异常体系结构
- caffe SilenceLayer
- c语言环境下如何创建一个外部函数
- [Algorithm]九章五.DFS
- 一只小蜜蜂...
- 如何解决sublime text3中文出现乱码
- UUID跟UDID的区别
- lintcode(647)Substring Anagrams