半屏小程序vue3项目要是点击事件有promise then里面再调用半屏接口,ios手机不会半屏,安卓可以。
vue2项目就不会这样。
直接创建一个vue3最简单的项目,调试代码如下:
<template>
<view class="content">
<view @tap="toRechargeEvent">dianwo</view>
</view>
</template>
<script>
const aa = () => {
return new Promise((resolve, reject) => {
resolve(true)
})
}
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
methods: {
toRechargeEvent() {
aa().then(res => {
console.log('res', res)
uni.openEmbeddedMiniProgram({
appId: "xxxx",
path: "pages/pay/orderpay?url=https%3A%2F%2Fpay.ybynet.com%2Fgateway%2FwechatPay%2FappletPay%2F20230628092446006O19974",
success: (res) => {
console.log(JSON.stringify(res));
},
fail: (res) => {
console.log(JSON.stringify(res));
},
})
})
}
}
}
</script>
但是我切换成vue的版本为2去调试ios就不会,不知道有没有人遇到,或是官方出来解释下
5 个回复
5***@qq.com (作者) - 前端开发
embeddedAppIdList配置不配置都这样,我都试了
DCloud_UNI_Anne
注意使用限制,相关问题
5***@qq.com (作者)
这些没问题,也能打开,是弹出提示跳转到小程序,体验上不是半屏那种,但是vue2项目就不会这样,就唯独vue3的会
2023-07-21 15:20
5***@qq.com (作者) - 前端开发
搞了几天,应该是uniapp的vue3项目对于then或await async编译后的代码有关,用vue2就不会,之前是部分ios手机不能await async异步后执行uni.login(wx.login一样),现在是半屏的小程序在ios上没法被半屏打开,而且是then和await async都不行,但是vue2项目写的代码却可以,已经强行放弃vue3了,希望有遇到的小伙伴们谨慎对待vue3项目,特别是异步后执行微信的api方面,ios手机特别要注意。也希望邀请的官方能解决这个问题。
夏时l
uniapp vue3写的项目也是遇到了这个问题,请求接口拿到数据再打开半屏小程序无法半屏打开。后面做成了请求接口拿到数据后给个确认弹窗,点击确认按钮打开了。或者也可以用vue2写法试试。
夏时l
今天解决了这个问题,uniapp vue3项目请求使用的luch-request,请求换成用uni.request就可以了