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 相关文章推荐
动态修改DOM 里面的 id 属性的弊端分析
Sep 03 Javascript
js整数字符串转换为金额类型数据(示例代码)
Dec 26 Javascript
修改或扩展jQuery原生方法的代码实例
Jan 13 Javascript
通过设置CSS中的position属性来固定层的位置
Dec 14 Javascript
JavaScript小技巧整理
Dec 30 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
JS动态添加选项案例分析
Oct 17 Javascript
JQuery扩展对象方法操作示例
Aug 21 jQuery
Angular6新特性之Angular Material
Dec 28 Javascript
Vuex中的State使用介绍
Jan 19 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 09 Javascript
简单了解JavaScript arguement原理及作用
May 28 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
模仿jQuery each函数的链式调用
2009/07/22 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
python2.7的编码问题与解决方法
2016/10/04 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python aiohttp的使用详解
2019/06/20 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python3 求约数的实例
2019/12/05 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
python制作抽奖程序代码详解
2021/01/15 Python
联想德国官网:Lenovo Germany
2018/07/04 全球购物
中职生自荐信
2013/10/13 职场文书
学校食堂采购员岗位职责
2013/12/05 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
小学老师寄语大全
2014/04/04 职场文书
火箭队口号
2014/06/18 职场文书
趣味运动会广播稿
2014/09/13 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL