5***@qq.com
5***@qq.com
  • 发布:2023-07-21 11:30
  • 更新:2023-10-09 17:22
  • 阅读:495

半屏小程序vue3项目没法半屏只会跳转小程序

分类:uni-app

半屏小程序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就不会,不知道有没有人遇到,或是官方出来解释下

2023-07-21 11:30 负责人:无 分享
已邀请:
5***@qq.com

5***@qq.com (作者) - 前端开发

embeddedAppIdList配置不配置都这样,我都试了

DCloud_UNI_Anne
  • 5***@qq.com (作者)

    这些没问题,也能打开,是弹出提示跳转到小程序,体验上不是半屏那种,但是vue2项目就不会这样,就唯独vue3的会

    2023-07-21 15:20

5***@qq.com

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

夏时l

uniapp vue3写的项目也是遇到了这个问题,请求接口拿到数据再打开半屏小程序无法半屏打开。后面做成了请求接口拿到数据后给个确认弹窗,点击确认按钮打开了。或者也可以用vue2写法试试。

夏时l

夏时l

今天解决了这个问题,uniapp vue3项目请求使用的luch-request,请求换成用uni.request就可以了

要回复问题请先登录注册