小程序-自定义组件获取个人信息和分享小程序

在小程序开发过程中,会经常做获取用户个人信息和分享小程序功能,老版本的wx.getUserInfo已经不支持弹窗授权了,如果需要js获取数据明显只有通过授权才可以

userAuthorized(){
    wx.getSetting({
      success: (res)=>{
        if(res.authSetting['scope.userInfo']){
          wx.getUserInfo({
            success: (data)=>{
              console.log(data);
              this.setData({
                authorized:true,
                userInfo: data.userInfo
              })  
            },
          });
        }else{
        
          console.log("请授权");
        }
      },
    });
  },

上面判断是用户是否授权

要想用户授权,微信小程序规定必须使用button原生提供的butoon,那么现在可以封装一个通用button,实现授权按钮和分享按钮

<button bind:getuserinfo="onGetUserInfo" open-type='{{openType}}'  plain='{{true}}' class="container">
  <slot name="img"></slot>
</button>

js

onGetUserInfo(event){
      this.triggerEvent('getUserinfo',event.detail,{})
}
// *就是这么简单 指的注意的是“bind:getuserinfo” 是原生提供的事件

css

.container{
    padding: 0 !important;
    border: none !important;
}

当时进行授权的时候使用者

 <v-button wx:if="{{!authorized}}"
        open-type="getUserInfo"  class="avatar-position"  bind:getUserinfo="onGetUserInfo">
<!--为什么可以传递image标签,因为组件中使用了插槽-->        
<image slot="img" class="avatar" src="/image/my/my.png" />
</v-button>

js

onGetUserInfo(event){
    const userInfo = event.detail.userInfo; //使用triggerEvent事件的
   
  },

如果当要使用分享功能应该如何做呢?

<v-button class="share-btn" open-type="share">
        <image class="share" slot="img" src="/image/icon/share.png" />
</v-button> //原来只需要更改open-type就可以了

 小程序最新open-type属性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值