uni_app+vite+vue3+ts开发小程序,解决getUserProfile()获取用户信息问题

这篇具有很好参考价值的文章主要介绍了uni_app+vite+vue3+ts开发小程序,解决getUserProfile()获取用户信息问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

getuserprofile:fail must be invoked by user tap gesture,Vue,小程序,前端,vue,uni-app

1.前言

最近开发小程序,开发环境uni_app+vue3等。在获取小程序平台用户信息是报错:

{errMsg: "getUserProfile:fail must be invoked by user tap gesture", errNo: 21500}

我在抖音上查了下错误码:

getuserprofile:fail must be invoked by user tap gesture,Vue,小程序,前端,vue,uni-app

看到这个解释也是瞬间无语了,然后在平台查找错误,找了半天终于在vue2 升级vue3文档里面找到解决办法,官方链接:

uni-app官网 (dcloud.io)https://zh.uniapp.dcloud.io/tutorial/migration-to-vue3.html#some-miniapp-terminal-events-of-vue3-project-are-delayed-or-failed-to-call

getuserprofile:fail must be invoked by user tap gesture,Vue,小程序,前端,vue,uni-app

这里也给出了解释。

2.代码逻辑

<template>
	<view class="page">
		<view class="box" data-eventsync="true" @click="getUserProfile">
			<text class="head">头像</text>
			<text>获取用户信息</text>
		</view>
		<button data-eventsync="true" @click="getUserProfile">获取用户信息</button>
	</view>
</template>

<script setup lang="ts">
	const getUserProfile = async () => {
		await new Promise(() => {
			uni.getUserProfile({
				success: (res) => {
					console.log('success', res);
				}, fail: (err) => {
					console.log('err', err);
					uni.showModal({
						title: '提示',
						content: JSON.stringify(err),
						success: function (res) {
							if (res.confirm) {
								 
							} else if (res.cancel) {
								 
							}
						}
					});

				}
			})
		})
		

	}
</script>

注意点:一定要把data-eventsync="true"添加到事件源上,冒泡到父节点不会生效,如下图所示,在外层view添加了点击事件,我点击了子元素,也会报错,所以子结点上也要添加data-eventsync="true"。

getuserprofile:fail must be invoked by user tap gesture,Vue,小程序,前端,vue,uni-app

完整代码

<template>
	<view class="page">
		<view class="box" data-eventsync="true" @click="getUserProfile">
			<text class="head" data-eventsync="true">头像</text>
			<text data-eventsync="true">获取用户信息</text>
		</view>
		<button data-eventsync="true" @click="getUserProfile">获取用户信息</button>
	</view>
</template>

<script setup lang="ts">
	const getUserProfile = async () => {
		await new Promise(() => {
			uni.getUserProfile({
				success: (res) => {
					console.log('success', res);
				}, fail: (err) => {
					console.log('err', err);
					uni.showModal({
						title: '提示',
						content: JSON.stringify(err),
						success: function (res) {
							if (res.confirm) {
								 
							} else if (res.cancel) {
								 
							}
						}
					});

				}
			})
		})
		

	}
</script>

 

以上是uni_app加vue3开发遇到的问题,希望对你有所帮助。vue2开发小程序不会存在这个问题。文章来源地址https://www.toymoban.com/news/detail-765308.html

到了这里,关于uni_app+vite+vue3+ts开发小程序,解决getUserProfile()获取用户信息问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Uni-app + Vue3 + TS +Vite 创建项目

    npm 都很熟,可是与 npm 如此相似的 npx 是干嘛的呢?我们为甚要介绍 npx ? 由于 uni-app 官方提供创建命令使用的是 npx,所以我们先来了解下 npx 是干什么的?它与 npm 的区别。 npx 是 npm 的高级版本,它从 npm v5.2 版本开始引入的,与 npm 绑定在一起,无需额外安装,具有更大的功

    2023年04月15日
    浏览(61)
  • uni-app+vue3+vite+微信小程序开发的问题点

    目录名称不能为api,否则会出现 ├F10: PM┤ [vite] getaddrinfo ENOTFOUND rivtrust.jz-xxx.xyz ,修改为_api; vue3的全局变量挂载 或者 全局变量的引入: 或者 axios在微信小程序上使用的问题: 安装模块 出现adapter is not a function的解决方法 需要axios自定义适配器配置 整体代码request.js: un

    2024年02月13日
    浏览(66)
  • 记录uni-app + vue3 + vite + uni-ui 小程序出现 Invalid pattern 的报错处理

    登录 - Gitee.com uni-ui 现在只推荐使用 easycom ,如自己引用组件,可能会出现组件找不到的问题 uni-ui 不支持使用 Vue.use() 的方式安装 在  vue-cli  项目中可以使用  npm  安装  uni-ui  库  注意  cli 项目默认是不编译  node_modules  下的组件的,导致条件编译等功能失效 ,导致组件

    2024年02月19日
    浏览(54)
  • uniapp导入echarts类库 开发图表类小程序vue3+ts+vite

    微信小程序和抖音小程序等都支持: 使用步骤如下 第一步:下载插件包 下载echarts插件包,并导入到项目中,然后使用插件中的组件创建容器,并导入数据就可以了。 echarts插件包地址:echarts - DCloud 插件市场 如果你是使用hbuilder写的,可以直接导入,如果你是vscode写的,就

    2024年01月21日
    浏览(41)
  • (小程序)基于uniapp+vite4+vue3搭建跨端项目|uni-app+uview-plus模板

    版本信息: 点击编辑器的文件 新建 项目(快捷键Ctrl+N) 2.选择uni-app项目,输入项目名/路径,选择项目模板,勾选vue3版本,点击创建,即可成功创建。 3.点击编辑器的运行 运行到浏览器 选择浏览器 当然也可以运行到手机或模拟器、运行到小程序工具。 到这里一个简单的

    2024年02月16日
    浏览(79)
  • uniapp+vue3+vite+ts搭建项目引入uni-ui和uviewPlus组件库

    一、创建项目架构 首先使用官方提供的脚手架创建一个项目 在这里插入代码片 ,这里我创建的 vue3 + vite + ts 的项目: (如命令行创建失败,请直接访问 gitee下载模板) 二、下载依赖 启动 三、下载安装包 引入uni-ui src/package.json 文件配置easycom模式 引入uview-plus main.ts配置 u

    2024年02月13日
    浏览(49)
  • 使用命令行方式搭建uni-app + Vue3 + Typescript + Pinia + Vite + Tailwind CSS + uv-ui开发脚手架

    项目代码以上传至码云,项目地址:https://gitee.com/breezefaith/uniapp-vue3-ts-scaffold 近日心血来潮想做一个开源项目,目标是做一款可以适配多端、功能完备的模板工程,包含后台管理系统和前台系统,开发者基于此项目进行裁剪和扩展来完成自己的功能开发。但前台系统花样繁多

    2024年01月20日
    浏览(54)
  • uni-app+vue3+ts项目搭建完整流程

    项目代码同步更新至码云 uni-vue3-ts-template 利用 uni-app 开发,有两种方法: 通过 HBuilderX 创建(需安装 HBuilderX 编辑器) 通过命令行创建(需安装 NodeJS 环境),推荐使用 vscode 编辑器 这里我们使用第2种方法,这两种方法官方都有详细介绍 点击查看官方文档 安装 Vue3 插件,点

    2024年02月03日
    浏览(66)
  • 3d环形图开发(vue3+vite+ts)

    开发效果(待完善):   技术支持: Echarts  echarts-gl 安装: 注:echarts与echarts-gl版本需对应,可参考官网 pnpm add echarts@4.9.0 echarts-gl@1.1.2  组件封装:

    2024年02月07日
    浏览(39)
  • vue3+vite在main.ts或者main.js文件中引入/App.vue报错(/App.vue不是模块)

    vue3报错提示 找不到模块“/App.vue”或其相应的类型声明 在使用 vue3➕vite➕ts 或者 js 搭建前端框架时,在 main.ts 或者 main.js 中引入 /App.vue 报错。报错内容为 /App.vue不是模块 。下面我们分 vue3+js 和 vue3+ts 两种情况讨论,给出相应的解决方案。 报错显示 : 报错原因 :javascrip

    2024年01月25日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包