android与js的交互
来源:互联网 发布:第九届杭州网络文化节 编辑:程序博客网 时间:2024/06/06 20:55
(0)写一个简单测试html
<!DOCTYPE html><html><head><title>app与web交互</title></head><body><script type="text/javascript">function changText() {//本方法实现更换h1内容document.getElementById("demo").innerHTML="调用javascript方法";}</script><h1 id='demo'>hello world</h1><!-- 调用android方法的按钮 --><button onclick="window.android.show()" >调用android方法</button></body></html>
(1)android调用js方法
添加mWebView.getSettings().setJavaScriptEnabled(true);使webView支持javascript
mWebView.getSettings().setJavaScriptEnabled(true); findViewById(R.id.id_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mWebView.loadUrl("javascript:changText()");//changText()是网页的js方法 } });
(2)js调用android方法
1. 写一个类UserJs,定义方法show;注意一点要为show方法添加注解@JavascriptInterface
private class UserJs { @JavascriptInterface public void show(){ Log.e("czhongzhi","网页调用本地方法"); Toast.makeText(MainActivity.this,"网页调用本地方法",Toast.LENGTH_SHORT).show(); } }
2. webView添加js调用接口;
mWebView.addJavascriptInterface(new UserJs(),"android");
3. html调用方法window.android.show(),其中android是第二步定义接口名称
<button onclick="window.android.show()" >调用android方法</button>
完整代码:
public class MainActivity extends Activity { private WebView mWebView; private String url = "http://192.168.1.42/html5/index.html"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.id_webview); WebSettings settings = mWebView.getSettings(); settings.setUseWideViewPort(true); settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); mWebView.loadUrl(url); mWebView.getSettings().setJavaScriptEnabled(true); findViewById(R.id.id_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mWebView.loadUrl("javascript:changText()");//changText()是网页的js方法 } }); mWebView.addJavascriptInterface(new UserJs(),"android"); } private class UserJs { @JavascriptInterface public void show(){ Log.e("czhongzhi","网页调用本地方法"); Toast.makeText(MainActivity.this,"网页调用本地方法",Toast.LENGTH_SHORT).show(); } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()){ mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }}
0 0
- Android 与 js 的交互
- Android 与 js 的交互
- android与js的交互
- js 与 Android 的交互
- android 与 js 交互
- Android与JS交互
- Android 与JS交互
- android与js交互
- android与JS交互
- android与js交互
- Android与js交互
- Android与JS交互
- Android与Js交互
- ANDROID 与JS交互
- Android与JS交互
- Android与js交互
- Android 与 js 交互
- Android与JS交互
- Asp.net mvc
- C 宏和位操作
- kissXml和GData使用配置
- 1.TwoSum-Leetcode
- 【js】:js中的确认框,提示框和确认框的使用
- android与js的交互
- Android事件机制
- Android DateUtlis(日期工具类)
- R语言︱文本(字符串)处理与正则表达式
- Linux系统故障分析与排查
- android 文件存储调试细节(小米系统)
- 单向链表的创建,插入,删除,排序,查找---新人贴
- 推荐一个压缩图片,但是品质影响不大的网站
- 虚拟机怎么用U盘重装系统