android h5和原生方法调用,H5与原生APP之间的方法互通
最近做与app端的混合开发,了解到了H5与原生app端之间的方法互通
首先是我们给app端定义方法供他们使用(以vue为例)
methods中定义一个方法名称
VContent() {
console.log("给app用的方法")
},
接着我们将这个方法在生命周期中挂载到window即可,没错,就是这么简单
mounted(){
window.VerifyContent = this.VerifyContent;
},
这样app端就可以使用我们的这个方法了
有的时候 还会安卓和ios端需要区别处理的情况
getDemo() {
let u = navigator.userAgent;
let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isiOS) {
//ios端的操作
} else {
//安卓端的操作
}
},
同样将这个方法在生命周期中挂载到window即可
在这些方法中是支持参数传递的,比如我在开发过程中 ios支持给我的方法传递多个参数,而安卓端则需要将所有参数合并为一个对象传递给我
那我们H5怎么调用app端的方法呢?
首先是Android
安卓端会由 app 向 h5 注入一个全局 js 对象,然后在 h5 直接访问这个对象,类似这样
H5调用起来也很简单:
`
try {
window.android.XXX(type, id);
} catch (error) {
console.log("Android error");
}
android就是上方图片里那个name,面跟的.XXX便是安卓给你的方法
接下来是ios
try {
window.webkit.messageHandlers.XXX.postMessage(JSON.str ingify(json));
} catch(error) {
console.log("ios error");
}
这个XXX 就是ios给你的方法
android h5和原生方法调用,H5与原生APP之间的方法互通相关推荐
- 外部方法调用内部_私有属性和私有方法
私有属性和私有方法 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私 ...
- Struts2动态方法调用(DMI)的三种方法
1.使用Action中的method属性 UserAction.java package org.bigjava.web.action;import com.opensymphony.xwork2.A ...
- 安卓混合开发——原生Java和H5交互,保证你一看就懂!
在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地Java代码与HTML中的JavaSc ...
- 在Android和iOS设备上调用C++代码
不少Android和iOS项目中,因为种种原因不得不调用C/C++代码.这篇文章主要讲述如何通过Objective-C++.NDK技术在iOS及Android设备上调用C/C++代码. 主要工作原理 ...
- python方法调用名字不一样_python中调用父类同名方法
知识回顾: 上节我们学习了类的构造方法. Python中构建构造方法主要使用__init__魔法方法. 实际项目操作中,由于类的继承导致可能覆盖同名的构造方法,导致只能使用子类的构造,而无法调用父类的 ...
- Java06-day06【Debug(概述、操作流程)、Debug查看偶数求和、Debug查看方法调用】
java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] &qu ...
- C# 类的几种方法调用
using System; class test { public static void Hello(int[,] ergs) ...
- 关于JVM方法调用的那些事
本文来说下JVM方法调用的那些事 文章目录 概述 方法调用 静态分派 动态分派 JVM动态分派实现 本文小结 概述 Java具备三种特性:封装.继承.多态. Java文件在编译过程中不会进行传统编译的 ...
- invoke方法_JVM是如何执行方法调用的?
前不久在写代码的时候,我不小心踩到一个可变长参数的坑.你或许已经猜到了,它正是可变长参数方法的重载造成的. 我把踩坑的过程放在了文稿里,你可以点击查看. void invoke(Object obj, ...
最新文章
- [Flume]使用 Flume 来传递web log 到 hdfs 的例子
- oracle实例文件,ORACLE实例管理之参数文件
- hdu 2448 Mining Station on the Sea(最短路+费用流)
- Java Array.sort的六种常用方法总结
- GIS二次开发之初探
- 同步容器和并发容器的区别
- linux中进程的用户管理
- 用户代码未处理nullreferenceexception_CSAPP 第九章整理 未完成
- 【渝粤教育】国家开放大学2018年秋季 0676-22T物流成本管理 参考试题
- P4777 【模板】扩展中国剩余定理(EXCRT)
- 劳力埃大学计算机科学,劳里埃大学计算机科学本科.pdf
- Qt-设置completer下拉框样式
- redis雪崩、击穿、穿透
- 【收藏】40 个学术网站,满足科研文献需求!
- ZeroC Ice Hello World
- vrp系统和linux区别,华为VRP-文件系统基础
- 两个表格合并怎么做?
- flash调用java_Flash加载swf后互相调用函数、变量
- 哲理故事与管理之道(21)-用情感激励下属
- 2021年高处安装、维护、拆除免费试题及高处安装、维护、拆除模拟考试题库