收藏
回答

h5 唤醒app的标签,当 vue-router 使用 hash 模式时,会不兼容吗?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx-open-launch-app 微信iOS客户端 7.0.14 7.0.14

# 复现链接

链接1:

http://www.266.com/slide/index.html?debug=1

链接2:

http://www.266.com/slide/index.html?debug=1#/

# 复现步骤:

  • 使用链接1,在安卓和ios手机打开
  • 打开右下角的 `vConsole`

# 代码

export default Vue.extend({
   mounted () {
    // wx config code ...
    wx.ready( () => {
      btn.addEventListener('ready'function (e{
            console.log('btn ready')
          })
   }}
})

# 结果

  • 预期:控制台应该显示代码中打印的`btn ready`
  • 实际:安卓符合预期, ios 不符合预期(但在刷新后重新执行复现步骤,则出现了`btn ready`)

# 其它现象

经观察,链接1复制后在微信开发者工具访问,会因为 vue-router 的 hash 模式而自动补上 `#/`,变成了链接2。

如果使用链接2 在 ios 手机打开,则能打印出`btn ready`(不需要刷新)


最后一次编辑于  2021-01-19
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2021-01-20

    你好,在路由变化后才调用wx.config

    2021-01-20
    有用
    回复 5
    • ubw
      ubw
      2021-01-20
      链接1和2是2个独立的页面,彼此都没页面跳转,哪来的路由变化呢?
      2021-01-20
      回复
    • 社区技术运营专员--许涛
      社区技术运营专员--许涛
      2021-01-20回复ubw
      用了vue-router/react-router hash mode,一进页面客户端拿着xxx.com去后台申请权限,前端马上就改了url改成了xxx.com/#,导致客户端认为前端没有权限,需要在路由变化后才调用wx.config
      2021-01-20
      回复
    • ubw
      ubw
      2021-01-20回复社区技术运营专员--许涛
      那如果是 history mode,是不是就不需要做这些额外处理了?
      2021-01-20
      回复
    • 社区技术运营专员--许涛
      社区技术运营专员--许涛
      2021-01-20回复ubw
      是的
      2021-01-20
      回复
    • MR. Shawn
      MR. Shawn
      2021-01-21回复社区技术运营专员--许涛
      https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#4 但我看 wx.config 对 history 路由有限制。原文`目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。` 这个是通过升级安卓系统版本而不是 sdk 版本来修复的?
      2021-01-21
      回复
登录 后发表内容
问题标签