字节跳动小程序 授权流程相关

关于授权的一些官方建议

  1. 不能一进入页面,就调用授权的API(弹出授权界面),建议:(在有必要的时候,去调用授权的API)
  2. 不能因为拒绝授权,影响用户的正常页面浏览
  3. 出于提高用户体验,一旦用户拒绝过某授权,那么再次调用该授权,会直接走fail流程
  4. 如果希望重新允许,某些被拒绝的授权,应该通过右上角菜单-设置,自行打开拒绝的授权开关,返回调用结果也会随之变化。
  5. 每次进入页面后,可以通过 tt.getSetting,获取用户曾经同意或拒绝的授权设置列表,来进行后续业务逻辑

具体的页面逻辑

以获取用户地理信息的授权为例:

  1. 初次进入页面,通过 tt.getSetting 获取地理位置的信息,如果已授权过则返回true,如果拒绝了授权则返回false,如果没有触发过授权那么返回
    'undefined'
    补充:界面上仅会出现进行过授权,有授权结果记录的条目
  2. 点击【手动授权按钮】,调用tt.openSetting来显示 小程序授权菜单 界面,通过修改设置,返回完成一个完整的手动授权流程

代码段:

  • 模板
<!--初次位置授权-->
<view 
  tt:if="{{allowLocalAuthorize}}"
  class="label mt0 flexBox flexYC flex_between"
>
  <view 
    bindtap="getLocationFn"
    class="localAuthorizeBtn"
  >位置授权</view>
  <view class="sysMes">获取您的地理信息,用于快速定位您的所在地区,便于表单填写。</view>
</view>
<!-- 手动位置授权 -->
<view 
  tt:if="{{ManualLocalAuthorize}}"
  class="label mt0 flexBox flexYC flex_between"
>
  <view 
    bindtap="openSettingFn"
    class="localAuthorizeBtn"
  >手动位置授权</view>
  <view class="sysMes">如您拒绝授权后,想再次授权地理位置,请自行进行手动授权。</view>
</view>
  • 脚本
data:{
  //初次授权按钮,显示与否,默认false - 不显示
  'allowLocalAuthorize': false,
  //手动授权按钮,显示与否,默认false - 不显示
  'ManualLocalAuthorize': false
},
onLoad(){
    //获取用户已经授权过的配置 -- 1.3.0
    if(tt.getSetting){
      tt.getSetting({
        success(res) {
          if(res.authSetting['scope.userLocation']==true){
            //已允许-地理授权
            //...进行正常业务逻辑
          }else if(typeof res.authSetting['scope.userLocation']=='undefined'){
            //初次加载-未进行过任何地理授权,显示【授权按钮】
            _that.setData({
              'allowLocalAuthorize': true
            });
          }else if(res.authSetting['scope.userLocation']==false){
            //拒绝过-地理授权,显示【手动授权】
            _that.setData({
              'ManualLocalAuthorize': true
            });
          };
        },
        fail(res) {
          console.log(`getSetting 调用失败`);
        },
      });
    }else{
      tt.showModal({
          title: "提示",
          content:
          "当前客户端版本过低,无法使用获取用户已经授权过的配置功能,请升级客户端或关闭后重启更新。"
      });
    }
}

授权的流程图

流程图

......占位,填坑........

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。