最近做与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之间的方法互通相关推荐

  1. 外部方法调用内部_私有属性和私有方法

    私有属性和私有方法 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私 ...

  2. Struts2动态方法调用(DMI)的三种方法

    1.使用Action中的method属性 UserAction.java package org.bigjava.web.action;import com.opensymphony.xwork2.A ...

  3. 安卓混合开发——原生Java和H5交互,保证你一看就懂!

    在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地Java代码与HTML中的JavaSc ...

  4. 在Android和iOS设备上调用C++代码

    不少Android和iOS项目中,因为种种原因不得不调用C/C++代码.这篇文章主要讲述如何通过Objective-C++.NDK技术在iOS及Android设备上调用C/C++代码. 主要工作原理 ...

  5. python方法调用名字不一样_python中调用父类同名方法

    知识回顾: 上节我们学习了类的构造方法. Python中构建构造方法主要使用__init__魔法方法. 实际项目操作中,由于类的继承导致可能覆盖同名的构造方法,导致只能使用子类的构造,而无法调用父类的 ...

  6. Java06-day06【Debug(概述、操作流程)、Debug查看偶数求和、Debug查看方法调用】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  7. C# 类的几种方法调用

    using System; class test {     public static void Hello(int[,] ergs)                                 ...

  8. 关于JVM方法调用的那些事

    本文来说下JVM方法调用的那些事 文章目录 概述 方法调用 静态分派 动态分派 JVM动态分派实现 本文小结 概述 Java具备三种特性:封装.继承.多态. Java文件在编译过程中不会进行传统编译的 ...

  9. invoke方法_JVM是如何执行方法调用的?

    前不久在写代码的时候,我不小心踩到一个可变长参数的坑.你或许已经猜到了,它正是可变长参数方法的重载造成的. 我把踩坑的过程放在了文稿里,你可以点击查看. void invoke(Object obj, ...

最新文章

  1. [Flume]使用 Flume 来传递web log 到 hdfs 的例子
  2. oracle实例文件,ORACLE实例管理之参数文件
  3. hdu 2448 Mining Station on the Sea(最短路+费用流)
  4. Java Array.sort的六种常用方法总结
  5. GIS二次开发之初探
  6. 同步容器和并发容器的区别
  7. linux中进程的用户管理
  8. 用户代码未处理nullreferenceexception_CSAPP 第九章整理 未完成
  9. 【渝粤教育】国家开放大学2018年秋季 0676-22T物流成本管理 参考试题
  10. P4777 【模板】扩展中国剩余定理(EXCRT)
  11. 劳力埃大学计算机科学,劳里埃大学计算机科学本科.pdf
  12. Qt-设置completer下拉框样式
  13. redis雪崩、击穿、穿透
  14. 【收藏】40 个学术网站,满足科研文献需求!
  15. ZeroC Ice Hello World
  16. vrp系统和linux区别,华为VRP-文件系统基础
  17. 两个表格合并怎么做?
  18. flash调用java_Flash加载swf后互相调用函数、变量
  19. 哲理故事与管理之道(21)-用情感激励下属
  20. 2021年高处安装、维护、拆除免费试题及高处安装、维护、拆除模拟考试题库

热门文章

  1. 14.Excel股票分析工具-北向资金持股变化
  2. echarts 获取geoJson数据
  3. 使用python,xlwing模块解决excel文档加密
  4. 计算机win7内容已满,win7电脑系统C盘空闲容量已满怎样扩展
  5. 英语总结—2017年3月
  6. 虚幻5 渲染视频序列视频轨的操作笔记
  7. 安卓android怎么打开方式,安卓手机USB调试在哪 安卓手机怎么打开USB调试
  8. 英语影视台词---一、少年派的奇幻漂流
  9. {转}Android开源项目分类汇总
  10. adb 无线连接小米手机(免ROOT)