errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.(微信小程序报错)

这篇具有很好参考价值的文章主要介绍了errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.(微信小程序报错)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

无法获取用户信息:

 解决方法:

无法渲染头像:

解决办法:


无法获取用户信息:

  • {errMsg: "getUserProfile:fail can only be invoked by user TAP gesture."}

errMsg: "getUserProfile:fail can only be invoked by user TAP gesture."

constructor: (...)

hasOwnProperty: (...)

isPrototypeOf: (...)

propertyIsEnumerable: (...)

toLocaleString: (...)

toString: (...)

valueOf: (...)

__defineGetter__: (...)

__defineSetter__: (...)

__lookupGetter__: (...)

__lookupSetter__: (...)

__proto__: Object

errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.(微信小程序报错)

 解决效果示例:

errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.(微信小程序报错)​​​​​​​ 

 报错代码:

<!--pages/index/index.wxml-->

<view class="container">

<image src="{{userInfo.avatarUrl}}" class="avatarUrl"></image>

<button open-type="getUserInfo" size="mini " type="primary" bindgetuserinfo="getInfo">点击获取用户信息</button>

  <text>hello {{userInfo.nickName}}</text>

<view class="main" catchtap="clickParent">

    <text catchtap="clickChild">{{msg}}</text>

</view>

</view>

 分析原因:最开始去网上找资料说是必须要用户点击才可以使用,否则就会报这个错误,我就寻思着我就是放在button里面的呀,的确符合用户点击才能使用啊。实在搞不定了,我就去官网找样例,还真被我找到了:wx.getUserProfile(Object object) | 微信开放文档

 解决方法:

放在button中还不算符合用户点击这个要求,必须得使用bindtap来绑定一个方法或者一个事件才能够使用,并且我的错误中这种方法已经被废弃,正确的写法:

绑定这个方法就好了,在方法里面使用获取用户信息的api

<!--pages/index/index.wxml-->

<view class="container">

<image src="{{userInfo.avatarUrl}}" class="avatarUrl"></image>

<button class="but1" bindtap="getInfo">点击获取用户信息</button>

  <text>hello {{userInfo.nickName}}</text>

<view class="main" catchtap="clickParent">

    <text catchtap="clickChild">{{msg}}</text>

</view>

</view>

getInfo点击事件:

 getInfo(){
//官网的api,可以进去直接Ctrl+F搜索关键字
   wx.getUserProfile({
      desc: '获取用户信息',
      success:(res)=>{
        this.setData({
        //需要在data中定义一个userInfo空对象用来接收信息        
          userInfo:res.userInfo
        })  
      } ,
      fail:(res)=>{
        console.log('222',res)
      }    
    })
},

无法渲染头像:

如果你的微信名渲染上去了但是你的头像无法渲染并且报错:[渲染层网络层错误] Failed to load image https://thirdwx.qlogo.cn/mmopen/vi_32/8Ta45AtetHRl1AHAaB7JeKQItia8ILQpqHvQpmWUR5coNQRia99nokPmzA1TeJyDiaAiaXADkXWKa4DibhD2obSckdw/132 net::ERR_CONNECTION_RESET

解决办法:

我猜你绝对调用了wx.getUserInfo这个api,直接把这个方法删除,把项目叉掉退出,记得一定要全部退出,退出到桌面后重新打开微信开发者工具,然后点击清缓存,然后在清楚全部缓存和模拟器缓存,OK,重新使用上面那个方法就可以渲染头像了。errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.(微信小程序报错)

 

 官网案例:文章来源地址https://www.toymoban.com/news/detail-486012.html

<view class="container">
  <view class="userinfo">
    <block wx:if="{{!hasUserInfo}}">
      <button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>
      <button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
    </block>
    <block wx:else>
      <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
      <text class="userinfo-nickname">{{userInfo.nickName}}</text>
    </block>
  </view>
</view>
Page({
  data: {
    userInfo: {},
    hasUserInfo: false,
    canIUseGetUserProfile: false,
  },
  onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
  },
  getUserProfile(e) {
    // 推荐使用 wx.getUserProfile 获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
    // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  getUserInfo(e) {
    // 不推荐使用 getUserInfo 获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
})

到了这里,关于errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.(微信小程序报错)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • File chooser dialog can only be shown with a user activation.

    使用vue开发时,通过ref通过“this.refs.[name].$el.click()”触发按钮时提示“File chooser dialog can only be shown with a user activation.”,按钮不能触发,网上解决办法是“dispatchEvent(new MouseEvent(\\\'click\\\'))”代替“$el.click()”,在我所在的场景不生效,所以就在要出发按钮组件上加了一个id,按

    2024年01月23日
    浏览(48)
  • 报错-小程序:errMsg: “getUserProfile:fail privacy permission is not authorized“

    一、问题描述 小程序 wx.getUserProfile 方法 调用时候报错如下 errMsg: \\\"getUserProfile:fail privacy permission is not authorized\\\" 问题的原因是,新版本依赖的版本库不支持了,这里调整为,2.18.1,可以正常使用了。 那同理如果有其他微信小程序的方法使用报错,那么有可能也是依赖版本库不

    2024年02月06日
    浏览(40)
  • getUserProfile:fail 调用失败?getUserProfile:fail can o

    一般Fail原因有很多,如果fail函数的参数返回结果有具体的提示错误,比如长度等问题,那么根据提示直接更改就行。 还有一种情况就是我们使用 测试号,Uni开发时 ,我们调用getUserProfile函数返回错误,我们首先要考虑AppId配置问题,要在manifest.json配置我们的Appid  如

    2024年02月11日
    浏览(39)
  • 微信小程序报错 errMsg: “getUserProfile:fail api scope is not declared in the privacy agreement“, errno: 112

    其实就是API没有在隐私协议中声明,需要在小程序后台更新对应的隐私协议 完善并提交信息, 注意:更新好隐私协议,要通过审核的,接口才能正常访问 在审核提交时候,选择采集用户隐私 小程序审核通过后,微信就自动会显示隐私协议弹窗组件,这个组件从10.17 使用官方

    2024年02月05日
    浏览(85)
  • rabbitMQ登录报错user can only log in via localhost

    本地安装好rabbitmq,启动后,输入IP:port,打开登录页面,使用guest/guest登录,报错 这是由于guest账号默认只能通过localhost访问登录,如果通过IP地址访问,则会被限制; 解决办法: 找到rabbitmq安装位置,D:developrabbitMqrabbitmq_server-3.7.17ebin;打开文件rabbimq.app 将{loopback_users

    2024年02月17日
    浏览(40)
  • [vue warn]: inject() can only be used inside setup()

    问题背景:最近在用vue3写管理系统的登录功能的时候,在封装axios之后浏览器控制台出现警告: [Vue warn]: inject() can only be used inside setup() or functional components. 原因:因为在vue3中useRouter,useStore要放在setup中引入,我们在封装axios文件中不能直接引入。 1.bug提示:  2.然后我们就

    2024年02月05日
    浏览(50)
  • ssh 登录报 Authorized users only. All activities may be monitored and reported.

    ssh 登录报 Authorized users only. All activities may be monitored and reported. 解决: 修改 /etc/motd 文件,清空内容 修改以后,登录不报 Authorized users only. All activities may be monitored and reported. update 2023-12-04 12:35 如果还不行就干掉 以下两个文件的内容 /etc/issue /etc/issue.net 总结下最全方法: 方法

    2024年02月15日
    浏览(55)
  • 小程序报错:(“ errMsg “:“ navigateTo : fail can not navigateTo a tabbar page “}

    小程序报错:(\\\" errMsg \\\": \\\" navigateTo : fail can not   navigateTo a tabbar page \\\"} 小程序报错:《\\\" errMsg \\\": \\\" navigateTo : fail can not navigateTo a tabbar page \\\"} 错误显示的是: VM791:1 Error: MiniProgramError {\\\"errMsg\\\":\\\"navigateTo:fail can not navigateTo a tabbar page\\\"}     at Object.errorReport (VM807 WAService.js:2)     at Func

    2024年02月05日
    浏览(51)
  • Unity 解决 “... can only be called from the main thread” 问题

    有些属性或方法只能在主线程中调用,如 .gameObject 、 Instantiate() 等。这是 Unity 设计时的一个缺陷(为了保证线程安全),多年来一直没有修正,或者说官方懒得弄。 以 Instantiate() 为例,在非主线程调用时,报错大概如下所示。其他属性或方法的报错也大体相同。 注:应注意

    2024年01月17日
    浏览(64)
  • ERROR: There can be only one Game target per project.

    UATHelper: Packaging (Windows (64-bit)): ERROR: There can be only one Game target per project. D:dockIntermediateSource 把旧的文件删去 一般会出现在更改项目名称后 感谢 There can be only one Game target per project - Development Discussion / Content Creation - Unreal Engine ForumsThere can be only one Game target per project - 

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包