vue h5 项目中与 app 安卓 or ios 进行交互 方式, h5与app交互

这篇具有很好参考价值的文章主要介绍了vue h5 项目中与 app 安卓 or ios 进行交互 方式, h5与app交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue h5 项目中与 app 安卓 or ios 进行交互 方式, h5与app交互

vue写h5项目嵌入app,app与h5进行交互,vue,h5,vue.js,android,ios,交互,html
前端同学可以加我一起交流一起进步

案例描述:需求是 混合开发中,H5页面与原生app安卓或者ios交互(包括,调用app的方法,或者app调用 h5中定义的方法)从而实现交互

项目场景:开发帮助中心页面,帮助中心页面采用 h5页面 开发 ,页面中有两个按钮需要和app进行交互

vue写h5项目嵌入app,app与h5进行交互,vue,h5,vue.js,android,ios,交互,html

第一步,先定义公共方法:

H5页面 和 原生app进行互相传参数调用需要使用 WebViewJavascriptBridge,下面是项目中的封装appBridge.js的公共方法 示例为vue代码

ios 的公共方法


		//新建 appBridge.js
		//ios 公共方法
		function AppJavascriptBridgeIOS(callback) {
		  if (window.WebViewJavascriptBridge) {
		    return callback(window.WebViewJavascriptBridge)
		  }
		  if (window.WVJBCallbacks) {
		    return window.WVJBCallbacks.push(callback)
		  }
		  window.WVJBCallbacks = [callback]
		  let WVJBIframe = document.createElement('iframe')
		  WVJBIframe.style.display = 'none'
		  WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'
		  document.documentElement.appendChild(WVJBIframe)
		  setTimeout(() => {
		    document.documentElement.removeChild(WVJBIframe)
		  }, 0)
		}


安卓 的公共方法

				//动态创建script的方法
				//安卓 公共方法
				function AppJavascriptBridgeANDROID(callback) {
				  if (window.WebViewJavascriptBridge) {
				    callback(WebViewJavascriptBridge);
				  } else {
				    document.addEventListener(
				      "WebViewJavascriptBridgeReady",
				      function () {
				        callback(WebViewJavascriptBridge);
				      },
				      false
				    );
				  }
				}


抛出方法 app和h5的交互分为 h5 定义好方法 进行注册 ,app来调用

export default {
  //H5调用 app方法
  callhandler(name, data, callback) {
    //调用iOS的方法
    if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
      AppJavascriptBridgeIOS(function (bridge) {
        bridge.callHandler(name, data, callback)
      })
    }
    //调用Android方法
    if (/(Android)/i.test(navigator.userAgent)) {
      AppJavascriptBridgeANDROID(function (bridge) {
        bridge.callHandler(name, data, callback)
      })
    }
  },
  //app调用H5定义的方法
  registerhandler(name, callback) {
    //iOS调用h5的方法
    if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
      AppJavascriptBridgeIOS(function (bridge) {
        bridge.registerHandler(name, function (data, responseCallback) {
          callback(data, responseCallback)
        })
      })
    }
    //安卓调用h5定义的方法
    if (/(Android)/i.test(navigator.userAgent)) {
      AppJavascriptBridgeANDROID(function (bridge) {
        bridge.init(function (message, responseCallback) {
          if (responseCallback) {
            // responseCallback(data);
          }
        });
        bridge.registerHandler(name, function (data, responseCallback) {
          callback(data, responseCallback)
        })
      })
    }

  },

}

然后挂载到vue的原型方法上,在main.js中进行配置

import AppBridge from "@/utils/appBridge.js" //此路径根据实际AppBridge.js路径进行填写
Vue.prototype.$bridge = AppBridge

实际使用

	methods: {
	// h5调用原生方法,appWebViewBridge为原生app定义的方法名。action为h5传递给原生app的参数,可以为多个。data为原生app传递给h5参数
    go() {
      const that = this;
      that.$bridge.callhandler(
        "appWebViewBridge",
        { action: "are you ok?" },
        data => {
          that.app = data;

          // 处理返回数据
        }
      );
    },
    // h5注册方法,供app调用该方法
    iosToH5(){
	  
	},
  },

  mounted() {
    // 如果是app调用h5方法,iosToH5是methods中定义的方法名。
    const that = this;
    that.$bridge.registerhandler("iosToH5", (data, responseCallback) => {
      // data是原生app传递给h5的参数
      that.Appdata = data;
    });
  }

如果对你有用不要忘记点赞收藏哦!
https://github.com/mebjas/html5-qrcode文章来源地址https://www.toymoban.com/news/detail-678322.html

到了这里,关于vue h5 项目中与 app 安卓 or ios 进行交互 方式, h5与app交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • H5端和原生APP进行交互

    浅浅记录一下吧!!! H5端和原生APP(安卓、IOS)进行数据交互 H5调用APP事件方法: 这里的  fn  是和APP开发人员协商好的方法名,APP端写逻辑代码,H5端直接调用APP的方法; ()里面可以向APP端传递数据,如果是引用数据类型的话,建议转成字符串再传递。 APP调用H5端事件方法:

    2024年02月22日
    浏览(46)
  • App与H5交互的几种方式

    1、直接调用App的定义的方法 首先我们需要判断当前App的客户端是Ios还是Android,针对不同的客户端我们需要调用不同的方法。 2、调用方法获取数据 这种方法和第一种方法一致,只不过是Ios与Android返回的值不同。 3、暴露方法给App调用传值 在很多时候并不一定是H5去调用App,

    2024年02月11日
    浏览(50)
  • 已解决:安卓自带的webview加载前端h5项目白屏时长严重,vue首页加载白屏时间过长,那我让app进入的时候就提前加载网页

    自己写的vue项目,自己写的安卓壳子,本来自己觉得慢,忍忍就过去了,但是人家觉得慢,你不得改么?结果是前端自己开发,安卓也自己开发,想甩个锅都没法甩,总不能甩给后端吧?哈哈哈 描述一下我的情况,我写了一个vue项目,需要嵌在安卓里运行,没想到安卓webvi

    2024年02月03日
    浏览(62)
  • H5项目中使用微信JS-SDK(以H5项目批量上传图片为例,兼容IOS及安卓)

    H5项目中使用微信图片上传相关sdk,主要用于解决 1.安卓手机无法一次选择多张图片进行上传问题;2.控制IOS系统手机一次可无限量选择图片上传的问题 一、准备工作:公众号配置 验证所需使用的sdk是否符合需求 可在使用场景中,打开微信官方提供的 微信SDKDemo 链接,或企业

    2024年02月07日
    浏览(51)
  • Vue.js uni-app 混合模式原生App webview与H5的交互

    在现代移动应用开发中,原生App与H5页面之间的交互已经成为一个常见的需求。本文将介绍如何在Vue.js框架中实现原生App与H5页面之间的数据传递和方法调用。我们将通过一个简单的示例来展示如何实现这一功能。 效果图如下: 首先,我们需要在Vue.js项目中引入原生App与H5页面

    2024年02月16日
    浏览(72)
  • uniapp项目APP端安卓ios权限检测教程

    导语:在 APP 的日常开发过程中,权限检测与授权是不可避免的一项重要的功能,下面就简单介绍一下如何检测和授权的方法。 原理 方法 实战 此授权方法主要是依托于 HTML5 产业联盟的 HTML5+ 规范实现的。 HTML5 产业联盟官网 获取当前操作系统名称 可以使用 uni.getSystemInfoSyn

    2024年02月07日
    浏览(42)
  • 利用webview 内嵌实现小程序,h5 ,app 页面跳转和数据通讯,附带实现pdf文件的预览(兼容ios和安卓)

    承载网页的容器。会自动铺满整个小程序页面, 个人类型的小程序暂不支持使用。 客户端 6.7.2 版本开始,navigationStyle: custom 对 web-view 组件无效 相关的属性说明:开放能力 / web-view (qq.com) 2.bindmessage 可以实现网页端和小程序之间通讯, 但只在特定时机触发 网页端向小程序

    2024年02月02日
    浏览(72)
  • vue&h5获取手机前置摄像头(安卓&ios),input capture属性和navigator.mediaDevices

    调用前置摄像头 capture=\\\"user\\\" 调用后置摄像头capture=\\\"environment\\\"或其他只适用于ios 根据官网解释 iOS最遵守遵守HTML5规范,其次是X5内核,安卓的webview基本忽略了capture。 官方文档:www.w3.org/TR/2018/REC-html-media-capture-20180201/ 对于安卓,亲测capture=\\\"user\\\"效果是,第一次打开前置摄像无效

    2024年02月10日
    浏览(51)
  • vue3.0 安卓和ios h5 移动端音频自定义圆环可拖拽播放(兼容微信浏览器)

    安装  npm install weixin-js-sdk 引入 template     div class=\\\"circle_box\\\"         div id=\\\"content\\\"/div          img class=\\\"img_0\\\" src=\\\"https://img.yzcdn.cn/vant/cat.jpeg\\\" alt=\\\"\\\"          img @click=\\\"changeType\\\" class=\\\"img_1\\\" v-show=\\\"playbool\\\" src=\\\"@/assets/decompression/pressure_audio_play.png\\\" alt=\\\"\\\"          img @click=\\\"changeType\\\"

    2023年04月23日
    浏览(102)
  • Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)

    Shopro商城无加密的开源源码( 可用于自营+外包项目(多主体) 、 可用于外包定制开发项目 ) shopro 商城,一款基于 uni-app 的前端模板商城。目前适配了(小程序+app+h5+公众号)。 主要功能:登录、注册、签到、富文本、分类、购物车、筛选、地址、商品评论、积分商城、拼团、

    2023年04月09日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包