阅读背景:

uniapp vue3 微信公众号打开小程序

来源:互联网 
<template> <view class="certification" style="height: 100vh;"> <wx-open-launch-weapp style="position: absolute; top: 0; left: 0; width: 100%; height: 100%" :username="userName" :path="path" @launch="handleLaunchFn" @error="handleErrorFn" id="launch-btn" > <div v-is="'script'" type="text/wxtag-template"> <!--这里的height只有px起效 vw不起效,visibility: hidden是为了让组件样式不影响到实际效果 --> <div class="btn" style="height: 100%;display: flex;flex-direction: column;align-items: center;padding-top: 50px;width: 100%;background: #666666;" > 打开小程序 </div> </div> <!-- vue3中这样写会报错,改成上面方式v-is="'script'" --> <!-- <script type="text/wxtag-template"> <style>.btn { padding: 12px; border: 1px solid red; }</style> <button class="btn">打开小程序</button> </script> --> </wx-open-launch-weapp> </view> </template> <script setup> import { ref, reactive, getCurrentInstance, toRefs, nextTick } from 'vue'; import { wxConfig } from '@/common/api.js'; import { onLoad, onShow } from '@dcloudio/uni-app'; import wx from 'weixin-js-sdk'; let dataRef = reactive({ path: '/pages/secondary/product-details', userName: 'gh_fa95b8d03e47' }); const { proxy } = getCurrentInstance(); onLoad(option => { nextTick(function() { let paramData = { url: window.location.href.split('#')[0]}; wxConfig(paramData).then(res => { if(res.code == 0){ const data = res.result wx.config({ debug: false, appId: data.appId, //小程序的appId timestamp: data.timestamp, //生成签名的时间戳 nonceStr: data.nonceStr, //生成签名的随机串 signature: data.signature, //签名 jsApiList: ['wx-open-launch-weapp'], openTagList: ['wx-open-launch-weapp'] }); wx.ready(e => { var btn = document.getElementById('launch-btn'); btn.addEventListener('launch', function (e) { console.log('success'); }); btn.addEventListener('error', function (e) { console.log('fail', e.detail); }); console.log(e, '成功验证'); }); wx.error(e => { console.log(e, '失败信息'); }); } }) }); }); onShow(() => { }); const { path, userName } = toRefs(dataRef); const handleLaunchFn = e => { console.log('success'); }; const handleErrorFn = e => { console.log('Error'); }; </script> <style lang="scss" scoped> .certification { width: 100%; background: #f0f0f0; overflow: hidden; } .opentag { display: block; width: 400rpx; height: 400rpx; background-color: aliceblue; } </style> <template> <view class="certification" style="hei



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: