android webview与jquery mobile相互通信
最近做android项目中遇到要在webview中做与js交互相关的东东,涉及到js中调用android本地的方法,于是查了资料整理了一下android和js互相调用的过程。如下demo,demo的主要实现过程如下:通过加载本地的html文件(里面有js脚本),实现android本地方法和js中的交互。
第一步:
mainfest.xml中加入网络权限
- <uses-permission android:name="android.permission.INTERNET" />
第二步:
加载本地写好的html文件(定义好js中提供给android调用的方法 funFromjs(),和android提供给js调用的对象接口fun1FromAndroid(String name)),放在 assets目录下。
- <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主题代码:
- @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对象方法定义
- public class JavaScriptObject {
- Context mContxt;
- 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 webview与jquery mobile相互通信的更多相关文章
- android中四大组件之间相互通信
好久没有写有关android有关的博客了,今天主要来谈一谈android中四大组件.首先,接触android的人,都应该知道android中有四大组件,activity,service,broadca ...
- Android+Jquery Mobile学习系列(9)-总结和代码分享
经过一个多月的边学习边练手,学会了Android基于Web开发的毛皮,其实开发过程中用Android原生API不是很多,更多的是HTML/Javascript/Css. 个人觉得基于WebView的J ...
- PhoneGap+jQuery Mobile+Rest 访问远程数据
最近研究Mobile Web技术.发现了一个好东西-PhoneGap! 发现用PhoneGap+jQuery Mobile是一个很完美的组合! 本实例通俗易懂.适合广大开发人群:高富帅.白富美.矮穷戳 ...
- 使用Jquery Mobile设计Android通讯录
本系列教程将指导大家一步步使用Jquery Mobile设计一个Android的通讯录应用.其中在应用的界面部分,将使用jQuery Mobile框架,并且会指导大家如何使Android中提供的web ...
- jQuery Mobile发展新闻阅读器,适应iphone和android打电话
程序猿是很不赖,你知道. 我们经常新浪,腾讯.雅虎等各大网站看到上述新闻.他们还推出了自己的移动新闻阅读器.今天,我自己用的jQuery Mobile 为了实现这一功能,.图像大小上传限制的大小250 ...
- jQuery Mobile开发的新闻阅读器,适应iphone和android手机
程序猿都非常赖.你懂的! 我们常常上新浪,腾讯.雅虎等各大站点上面看新闻.他们也都各自推出了自家的手机新闻阅读器.今天我自己使用jQuery Mobile 来实现这一功能.图片大小上传限制了大小250 ...
- JQuery Mobile+cordova构建一个Android项目
1.安装Android开发环境 Android开发环境的安装,现在主要是由于不能访问谷歌站点,在windows下在host文件中添加一个对应的74.125.195.190 dl-ssl.goo ...
- Android+Jquery Mobile学习系列(6)-个人信息设置
本节开始,进行代码的实战练习.我的这个App是管理保险客户信息的,数据采用Sqlite存储在本地手机上,第一次使用需要先登记自己的个人信息,这个功能非常简单,也无关紧要,我是拿这个练手,方便做后面复杂 ...
- Android+Jquery Mobile学习系列(3)-创建Android项目
前两章分别对开发环境和Jquery Mobile基础知识进行了介绍,本章介绍创建一个Android项目,并使用WebView控件显示HTML数据. 首先创建一个Android Application项 ...
随机推荐
- Python:PIL(三)——Image
学习自:PIL官方文档--Image (2条消息) Python图像处理PIL各模块详细介绍_章子雎的博客-CSDN博客 一.Image模块 1.open 用法 open(fp,mode='r',fo ...
- burpsuite常见问题
中文乱码问题:https://www.cnblogs.com/bk76120/p/12400092.html 无法抓取本地或局域网其他主机的包 去掉"对于本地地址不使用代理服务器" ...
- RENIX软件连接机箱测试RTSM基本操作——网络测试仪实操
本文主要介绍了RENIX软件RTSM功能连接机箱测试的基本操作.文章分为三部分内容,第一部分为RTSM功能简介,第二部分为RTSM原理简介,第三部分为RTSM测试方案的具体介绍. 第一部分.RTSM功 ...
- CMAK(Kafka Manager)安装
CMAK 是管理Kafka集群的常用工具,之前的名字叫Kafka Manager.CMAK功能很强大,它可以管理多个Kafka集群,查看集群内部状态,如:topic.broker.consumer.p ...
- tp5 ajax批量删除(自写)
html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Goland 时间转换的那些事
Goland 时间转换的那些事 在项目的开发过程中遇到的一个很有意思的时间转换问题 例子 假设有一个需求,是从数据库获取到了一个时间,然后需要把时间延后一天,再返回时间戳 得到伪代码 t := &qu ...
- WPF之转换器
IValueConverter的用法1. COnvert方法object Convert( object value, Type targetType, object parameter, Cultu ...
- 对 Kubernetes 部署进行故障排除的视觉指南
链接:https://learnk8s.io/troubleshooting-deployments
- pytest配置文件pytest.ini
说明: pytest.ini是pytest的全局配置文件,一般放在项目的根目录下 是一个固定的文件-pytest.ini 可以改变pytest的运行方式,设置配置信息,读取后按照配置的内容去运行 py ...
- 如何移植sshserver到嵌入式平台
ssh解释说明 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是较可靠,专 ...