安卓手机未开启微信运动,调用微信运动接口无提示开启功能弹窗,直接返回fail
发布于 5 年前 作者 linxiuying 5708 次浏览 来自 问答

ios 微信用户在未开启微信运动权限时调用wx.getWeRunData() 会直接弹窗提醒用户开启微信运动,

安卓用户wx.getWeRunData()直接fail 我们小程序没上线只能在本地和体验版上体验

试了几款安卓有微信运动接口的小程序是可以呼起开通微信功能弹窗,所以还请帮忙看下问题:

app.js:

wx.getSetting({

    success: res => {

        if (!res.authSetting[‘scope.werun’]) {

            wx.authorize({

                scope: ‘scope.werun’,

                success: res => {

                console.log(res);

                wx.getWeRunData();

                },

                fail: res => {

                    console.log(res);

                }

            })

        }

    }

})

使用微信运动的页面js:

if (wx.getWeRunData) {

// 获取微信步数

wx.getWeRunData({

    success(res) {

        getSteps(res.encryptedData);

    },

    fail(res){

        wx.showModal({

            title: ‘提示’,

            content: ‘开发者未开通微信运动,请关注“微信运动”公众号后重试’,

            showCancel: false,

            confirmText: ‘知道了’

        })

    }

})

} else {

// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示

wx.showModal({

    title: ‘提示’,

    content: ‘当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。’

})

}

3 回复

有解决了吗?同样遇到这个问题了我在onLaunch获取授权信息,

wx.getSetting({
      success: res => {
        console.log('getSetting')
        console.log(res);
        //提前授权获取定位 -- 拒绝了就打开设置界面
        if (!res.authSetting['scope.userLocation']){
          wx.authorize({
            scope: 'scope.userLocation',
            success(res) {
              // 用户已经同意小程序使用定位功能,后续调用 wx.getLocation 接口不会弹窗询问
              // wx.getLocation({
              //   success(res){
              //     console.log('9999')
              //   }
              // });
              console.log(res)
            },
            fail(err){
              console.log(err);
              //用户决绝了跳转设置页面
              wx.openSetting();
            }
          });
        }
      }
    })

在index主页的onLoad还有调用wx.getsetting,然后允许了直接执行成功回调,未处理决绝的情况,发现每次拒绝后都没有反应了,只有再次进入小程序,或者是在开发者工具重新编译小程序,他会开启授权提醒

本地和线上的问题吗?

有人帮我看一下吗

回到顶部