android webview js 交互框架,自定义android混合框架开发实践1:实现基础andorid和webview交互...

1. 本地web资源

1.构建assets/web文件夹

2.创建index.html你的html代码

3.使用本地web资源WebView mv = findViewById(...);

mv.loadUrl("file:///android_asset/web/index.html")

2.实现基础的android和js交互

(1). 实现js调用andorid方法

在Acitivity内构建一个function@JavascriptInterface

public void test(){

Log.e("测试","====");

}

@JavascriptInterface 在新版本的api内必须 否则无效果

将android对象转js对象供js调用WebView mv = findViewById(...);

mv.addJavascriptInterface(this,"activity")

mv.loadUrl("file:///android_asset/web/index.html")

js调用window.activity.test()

(2). android 调用 js方法WebView mv = findViewById(...);

mv.getSettings().setJavaScriptEnabled(true);

mv.loadUrl("javascript:alert('test')");

(3). js传参回调函数给android触发

注入一个js对象,存储回调函数

js对象var callbacks = {

fns:[],

add(fn){this.fns.push(fn);return this.fns.length-1;},

get(id){return this.fns[id];}

}

注入方式WebView vc = findViewById(...);

vc.getSettings().setJavaScriptEnabled(true);

vc.setWebViewClient(new WebViewClient(){

@Override

public void onPageFinished(WebView view, String url)

{

super.onPageFinished(view, url);

vc.loadUrl("javascript:js代码");

}

});

android 回调方法@JavascriptInterface

public void callback(String msg,int callback_id){

mHandler.post(new Runnable() {

@Override

public void run() {

WebView vc = findViewById(...);

vc.getSettings().setJavaScriptEnabled(true);

vc.loadUrl("javascript:callbacks.get("+callback_id+")('"+msg+"')");

}

});

}

js端调用var callback_id = callbacks.add(function(msg){

alert(msg)

});

window.activity.callback("测试",callback_id)

(4) android 调用js并获取返回值mWebView.evaluateJavascript("javascript:test()", new ValueCallback() {

@Override

public void onReceiveValue(String response) {

}

});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jxls使用excel公司_使用jXLS将Excel文件解析为JavaBeans

jxls使用excel公司这篇文章展示了如何使用jXLS将Excel文件解析为JavaBeans列表。 这是我编写的通用实用程序方法&#xff1a; /** * Parses an excel file into a list of beans. * * param <T> the type of the bean * param xlsFile the excel data file to parse * …

网站部署后无法访问sqlserver_.NET Core跨平台部署

1. Windows-IIS大家对于在IIS上部署.NET站点已经驾轻就熟了&#xff0c;部署.NET Core也没有什么本质区别&#xff0c;但是这其中仍然有一些细节是不同的&#xff0c;下面记录了一些我在部署时遇到的问题1.1 安装.NET Core Windows Server Hosting要在IIS上运行http://ASP.NET …

ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题

在最近的项目测试中发现通过ajax发送超长参数时遇到这个脚本错误&#xff1a;系统找不到指定资源the system cannot locate the resource specified意思是参数太长&#xff0c;无法发送&#xff0c;测试的浏览器是IE6//IE7//IE8&#xff0c;由于利用了ActiveX所以其他浏览器的情…

Android代码数字证书,有关Android中读取证书

最近在项目中遇到了读取证书中内容与读取keystore中对应公钥的需求&#xff0c;在此做一下笔记读取证书最近项目中遇到后台返回个byte[]数组类型的证书&#xff0c;需要从证书中获取相关内容&#xff0c;先看一下相关代码BufferedInputStream mStream null;try {String s new…

Spring Boot中的高级配置文件管理

我们都知道Spring Boot中的配置文件管理及其为不同环境配置应用程序时提供的灵活性。 此功能的另一个强大方面是&#xff0c;在任何给定时间&#xff0c;我们都可以拥有多个活动配置文件。 这样做的好处是我们可以将部署环境配置文件与业务用例相关的配置文件混合在一起。 让我…

先装vs还是先装sql_【家装话题】装修师先装门还是先装地板?

装修先装门还是先装地板从成品保护角度说&#xff0c;先装门&#xff0c;成品保护相对容易&#xff0c;不管是发泡胶的滴落&#xff0c;玻璃胶的污染&#xff0c;安装门用的电动工具&#xff0c;包装垃圾&#xff0c;锯末&#xff0c;钻孔钉凿的冲击。直接在水泥地面上操作&…

python openpyxl模块追加数据_python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据...

当实际工作需要把excel表的数据读取出来&#xff0c;或者把一些统计数据写入excel表中时&#xff0c;一个设计丰富&#xff0c;文档便于寻找的模块就会显得特别的有吸引力&#xff0c;本文对openpyxl模块的一些常见用法做一些记录&#xff0c;方便工作中查询(好记性不如烂笔头)…

android 百度开发论坛,Android 百度地图开发(一)

现在好多手机应用开发需要使用到百度地图,在使用百度地图的过程和遇到的问题整理一下方便以后使用申请密钥使用白度地图首先需要申请API Key,申请百度账户才能得到API Key. 登录 http://developer.baidu.com/map/ 点击申请密钥申请过程中需SHA1,使用Eclipse的同学应该很容易使用…

s905各种型号的区别_梯式桥架和槽式桥架的区别介绍

电缆桥架是我们日常生活中经常可以看到的一种既可以保护电缆电线不受外界因素损坏&#xff0c;并保障着我们用电安全的一种建筑材料。电缆桥架是由支架、托臂以及安装附件组成的&#xff0c;桥架既可独立架设安装&#xff0c;也可以敷设在建筑物和管廊支架上。对于电缆桥架型号…

shell中正则表达式详解_Linux中的正则表达式

点击上方Linux迷&#xff0c;关注我们正文来自&#xff1a;https://www.linuxmi.com/linux-zhengzebiaodashi.html正则表达式就是用于匹配每行输入的一种模式&#xff0c;模式是指一串字符序列。拥有强大的字符搜索功能。也非常方便的搜索过滤出我们想要的内容。Linux系统&…

android 编辑9图片,Android基础入门教程——1.6 .9(九妹)图片怎么玩

Android基础入门教程——1.6 .9(九妹)图片怎么玩Android基础入门教程1.本节引言&#xff1a;可能有的一些疑问&#xff1a;1.什么是.9图片&#xff1f;答&#xff1a;图片后缀名前有.9的图片,如pic1.9.png这样的图片2. .9图片能干嘛&#xff1f;答&#xff1a; 在图片拉伸的时候…

Spring WebClient和Java日期时间字段

WebClient是Spring Framework的反应式客户端&#xff0c;用于进行服务到服务的调用。 WebClient已成为我的实用工具&#xff0c;但是最近我意外地遇到了一个问题&#xff0c;即它处理Java 8时间字段的方式使我绊倒了&#xff0c;本文对此进行了详细介绍。 快乐之路 首先是幸福…

2台电脑一根网线传文件_Iphone 和PC如何共享文件

iphone上有个隔空传送的功能&#xff0c;传文件非常方便&#xff0c;但是需要苹果全家桶才能使用&#xff0c;和个人pc如何传文件&#xff0c;特别是家里的主力台式机&#xff0c;需要传个视频文件&#xff0c;微信25m限制&#xff0c;插线也不太方便&#xff0c;能否和隔空传送…

如何将原图和json融合_双曲知识嵌入:如何将知识“融合”带入新空间?

知识图谱作为人类知识的结构化数据&#xff0c;是构建人工智能的基石。然而目前的知识图谱都是不完备的&#xff0c;所以需要将多个知识图谱融合以获得更完备的知识库。基于表示学习的知识关联作为知识图谱融合的新方法受到了许多关注。但知识关联模型面临着参数多、复杂性高、…

android viewgroup点击变色,Android ViewGroup事件分发

上篇文章已经分析了Android的Touch事件分发。如果没看的建议先看一下。Android View的Touch事件分发。接下来我们开始写几种场景&#xff0c;得出一个初步的执行顺序&#xff0c;然后我们按照这个顺序开始分析。首先我们自定义一个ViewGroup和一个View&#xff0c;然后重写相关…

qq数据泄露_真良心,腾讯这个app竟然能查账号泄露

最近有朋友都在分享腾讯手机管家&#xff0c;纷纷表示这是一个良心app&#xff0c;能查到自己账号泄露。仔细想一下&#xff0c;这么多年下来确实忘了自己都在什么平台或网站注册过账号&#xff0c;在黑客泛滥的今天&#xff0c;黑客很容易从一些平台窃取数据库&#xff0c;拿到…

vue 如何获取图片的原图尺寸_阳台洗衣机组合柜如何设计|尺寸规范|案例图片...

对于阳台装洗衣机来说&#xff0c;不只是简单的装修&#xff0c;还需要我们考虑水电、尺寸以及美观实用等问题&#xff0c;以免后期出现问题的时候会更加麻烦。接下来深圳装修网小编就为你们带来阳台洗衣机组合柜的案例赏析&#xff0c;以及装修的尺寸规范等内容&#xff0c;一…

print2flashwindows7旗舰版下载哪一个_JUJUMAO_MSDN原版 win 7 二合一 旗舰版32位 64位原版ISO镜像...

文件: F:\JUJUMAO_msdn_Win7_ultimate_x86_x64.iso大小:4.73G(5082120192 字节) MD5: AA4C7E80C52AC0DEDC757EF86CF8057BSHA1: 66505AD9424ED2D2B0DEDE7067917B708A67C7DDCRC32: 0E2FAB2C高速下载地址&#xff1a;https://jujumao.cowtransfer.com/s/3220a80131744fJUJUMAO_MSD…

lambda ::表达式_Lambda表达式和流API:基本示例

lambda ::表达式这篇博客文章包含基本Lambda表达式和Stream API示例的列表&#xff0c;我在2014年6月在Java用户组Politechnica Gedanensis &#xff08;格但斯克技术大学&#xff09;和Goyello的实时编码演示中使用了这些示例。 Lambda表达式 句法 最常见的示例&#xff1a; …

android readonly file system,安卓ROOT权限下“Read-only file sytem”解决办法

今天用安卓模拟器&#xff1a;BlueStacks&#xff0c;打开apk终端模拟器&#xff1a;Terminal&#xff0c;在shell操作命令的时候提示“Read-only file sytem”&#xff1a;第一种方法&#xff1a;在 Android 系统中&#xff0c;我们通过 adb 登录到 shell 进行操作时&#xff…