H5接入到微信小程序或者微信浏览器打开相机界面会白屏刷新

最近开发的一个需求是H5项目,并嵌入到小程序中,其中有模块用到了拍照功能。

前端同事们开发这个功能嵌入到小程序后会有bug,只要打开相机拍照后返回界面,界面会白屏刷新并且返回到了上一级,前端同事查询微信论坛或者其他地方的问答都说是手机内存不足或者运行的软件太多导致的,但只留一个微信也会如此。

因为我用的iPhone调试的,发现打开相册的时候,前端页面不会全部覆盖,但是打开相机页面会被覆盖,所以我猜测是不是打开相机就是相当于覆盖了当前的页面。

然后我给页面添加了缓存设置,尝试方案可行:

<router-view v-slot="{ Component, route }">
    <component :is="Component" :key="route.name" v-if="!$route.meta.keepAlive"></component>
    <keep-alive>
      <component :is="Component" :key="route.name" v-if="$route.meta.keepAlive"></component>
    </keep-alive>
  </router-view>

缓存后页面数据会一直保存,如果是表单提交页建议:

onActivated(() => {
  // 清空表单数据
})
// 或者
onDeactivated(() => {
  
})

至此,H5项目在微信浏览器中打开相机导致页面白屏刷新并退出的问题得到解决!

如果您有更好的方法,欢迎告诉博主!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信端或外部浏览器中通过H5链接打开微信小程序是通过特殊的URL链接实现的。首先,在微信小程序的开发者工具中,我们需要设置小程序的相关参数,并获取到小程序的AppID。然后,在H5页面中,通过以下方式使用URL链接来打开微信小程序。 1. 微信打开微信小程序:我们可以在H5页面中创建一个按钮,当用户点击按钮时,触发打开微信小程序的操作。代码如下所示: ```html <button onclick="openMiniProgram()">打开微信小程序</button> <script> function openMiniProgram() { window.location.href = "weixin://dl/business/?t=abcde12345"; // 将abcde12345替换为你的AppID } </script> ``` 2. 外部浏览器打开微信小程序:我们可以通过微信开放平台的跳转链接功能,生成一个特殊的URL链接,用户在浏览器打开该链接后,会跳转到微信客户端并打开指定的微信小程序。代码如下所示: ```html <button onclick="openMiniProgram()">打开微信小程序</button> <script> function openMiniProgram() { window.location.href = "https://mp.weixin.qq.com/mp/wapopen?username=gh_abcdefgh1234"; // 将gh_abcdefgh1234替换为你的小程序原始ID } </script> ``` 通过上述方式,用户在微信端或外部浏览器中点击相应的按钮,即可打开指定的微信小程序。在链接中,我们可以根据需要传递一些参数,以在小程序中进行相应的操作,实现更丰富的功能和交互体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值