VUE使用 wx-open-launch-app 组件开发微信打开APP功能


Posted in Javascript onAugust 11, 2020

在微信中开发使用vue框架,通过 wx-open-launch-app 微信自定义注册组件开发 微信H5打开app功能

template

<template>
	<div class="beva-home">		
		<!-- ===== 微信浏览器打开贝瓦APP ===== -->
		<div class="weixin-open-app" v-if="openAppState">
			<img class="close-icon" :src="icon.close" alt="关闭" @click="handleCloseOpenAppMask">
			<div class="detail">微信端暂不支持音视频播放,请到APP观看收听。</div>
			<div class="open-btn" v-if="!wechatState" @click="handleOpenBevaApp">打开贝瓦儿歌APP</div>
			<div class="" v-else>
				<wx-open-launch-app id="launch-btn" @error="handleErrorFn" @launch="handleLaunchFn" appid="wxd8799b17ff675637" extinfo="这里是微信H5传递给APP的指定参数">
					<script type="text/wxtag-template">
						<style>.btn { display: flex;align-items: center; }</style>								
						<div class="btn" style="border-radius: 50px;font-size:15px;color:#ffffff;font-weight:700;padding: 0 50px;height:45px;line-height: 45px;background-color: #FF9700;margin: 0 auto;">前往贝瓦儿歌</div>					
					</script>
				</wx-open-launch-app>
			</div>			
		</div>
	</div>
</template>

script

<script>
	export default {
		data() {
			return {
				wechatState:false, // 是否显示微信打开app功能按钮			
				icon:{
					close:require("../../assets/close.png")
				},				
				openAppState:false, // 显示打开app 的按钮 
			}
		},
		methods: {
			/**
			 * 判断当前的环境是否为微信环境且版本大于指定版本
			 */
			handleJudgeWechat(){
			 let wechat = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i) ;
			 let judgewechat = wechat[1].split('.')
			 if(judgewechat[0]>=7){
			 if(judgewechat[1]>=0){
			  if(judgewechat[2]>=12){
			  this.wechatState = true
			  console.log("当前符合 h5 打开指定app")   
			  }
			 }
			 }
			},
			/**
			 * 打开应用宝下载页面
			 */
			handleOpenBevaApp() {
				window.location.href = "https://a.app.qq.com/o/simple.jsp?pkgname=com.slanissue.apps.mobile.erge&g_f=******"
			},
			/**
			 * 监听error 函数
			 */
			handleErrorFn(e){
				this.$data.wechatOpenAppData ="【这里是error 函数】"+ JSON.stringify(e)
				if (e.isTrusted == false) {
					// alert("跳转失败")
					window.open("https://a.app.qq.com/o/simple.jsp?pkgname=com.slanissue.apps.mobile.erge&g_f=******")
				}
			},
			/**
			 * 监听launch 函数
			 */
			handleLaunchFn(e){
				this.$data.wechatOpenAppData ="【这里是launch 函数】"+ JSON.stringify(e)
			},
			/**
			 * 配置当前页面分享信息
			 */
			handleWeixinShare(){
				this.$weixin.share({
					imgUrl: window.location.origin + require("../../assets/logo.png"),
					title: "贝瓦儿歌-推荐首页",
					desc: "海量精品课程,尽在贝瓦儿歌APP!",
					link: window.location.href
				})
			},
			/**
			 * 关闭弹框打开贝瓦儿歌app
			 */
			handleCloseOpenAppMask(){
				this.$data.openAppState = false
			},
		},
		mounted() {
			this.handleWeixinShare()
			console.log("【贝瓦首页初始化】")
			this.handleJudgeWechat()
			// 获取 homelist 组件传递过来的打开app的 显示状态
			this.bus.$on("openAPP",res=>{
				console.log("open app")
				if(res.type){
					this.$data.openAppState = true
				}
			})
		}
	}
</script>

现在只是再做一个笔记,后续等现阶段开发完毕了,在详细梳理一下教程。可以看一下效果图。

在微信开发者工具上显示:开发者工具由于不满足微信打开app的版本信息,所以显示的自己写的一个默认样式。

VUE使用 wx-open-launch-app 组件开发微信打开APP功能

在真机上显示:
在真机上因为当前环境版本支持打开app功能,所以当前展示的真实的情况。

VUE使用 wx-open-launch-app 组件开发微信打开APP功能

总结

到此这篇关于VUE使用 wx-open-launch-app 组件开发微信打开APP功能的文章就介绍到这了,更多相关vue开发微信打开APP内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
Jan 15 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
May 03 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
Jul 15 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
vue将对象新增的属性添加到检测序列的方法
Feb 24 Javascript
说说Vue.js中的functional函数化组件的使用
Feb 12 Javascript
JavaScript判断浏览器运行环境的详细方法
Jun 30 Javascript
vue实现图片按比例缩放问题操作
Aug 11 #Javascript
JavaScript中while循环的基础使用教程
Aug 11 #Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 #Javascript
js实现列表按字母排序
Aug 11 #Javascript
Vue使用轮询定时发送请求代码
Aug 10 #Javascript
vue页面引入three.js实现3d动画场景操作
Aug 10 #Javascript
详解vue中v-model和v-bind绑定数据的异同
Aug 10 #Javascript
You might like
一个改进的UBB类
2006/10/09 PHP
linux下 C语言对 php 扩展
2008/12/14 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
vue项目关闭eslint校验
2018/03/21 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
Python3几个常见问题的处理方法
2019/02/26 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
介绍一下gcc特性
2012/01/20 面试题
银行门卫岗位职责
2013/12/29 职场文书
员工考核管理制度
2014/02/02 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
文明家庭事迹材料
2014/12/20 职场文书
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server