uniapp项目开发的功能点

一.手机

  1. 判断什么手机
		const platform = uni.getSystemInfoSync().platform;//platform == 'ios'
  1. 什么机型
const model =  uni.getSystemInfoSync().model //model.toindex('iPhone')

二.授权登录

授权登录有2种方式

(一)静默授权

就直接通过uni.login 获取code ,传递给后端就好

(二)弹出框授权

现在只有手机授权会弹出框的,获取微信用户信息getUserProfile(新版)–不支持弹出框 同时不能获取真实微信头像和昵称【统一都是灰色头像和微信用户】

<button class="button btn-normal" type="primary" open-type="getPhoneNumber"
				@getphonenumber="getPhoneNumber">授权登录</button>
				//获取手机号授权
			async getPhoneNumber({
				detail
			}) {
				const app = this
				if (detail.errMsg != 'getPhoneNumber:ok') {
					app.$toast("微信授权获取手机号失败")
					return
				}
				app.isLoading = true
				// 后端的获取手机号的接口
				store.dispatch('LoginMpWx', {
						phoneCode: detail.code,
						encryptedData: detail.encryptedData,
						iv: detail.iv
					})
					.then(result => {
						this.$navTo('pages/user/personalData');
					})
					.catch(err => {
						const resultData = err.result.data
						// 显示错误信息
						if (isEmpty(resultData)) {
							app.$toast(err.result.message)
						}

					})
					.finally(() => app.isLoading = false)

			},

三. 昵称头像

现在微信用户信息getUserProfile(新版)–不支持弹出框 同时不能获取真实微信头像和昵称【统一都是灰色头像和微信用户】,改成了头像昵称填写。

<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
					<image class="avatar" :src="avatarUrl"></image>
				</button>
	<input type="nickname" class="weui-input" placeholder="请输入姓名" @input="bindinput"
						v-model="name" />
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
  data: {
  name:'',
    avatarUrl: defaultAvatarUrl,
  },
  onChooseAvatar(e) {
  // 这个是微信临时头像,传给后端存是不行,需要转化,这边可以转成base
    const { avatarUrl } = e.detail 
    let s = uni.getFileSystemManager().readFileSync(avatarUrl , 'base64')
	this.avatarUrl = 'data:image/jpeg;base64,' + s

  },
  //昵称输入框blur
			bindblur(e) {
				this.name = e.detail.value;
			},
})

在这里插入图片描述

四.支付-uni.requestPayment

uniapp 不需要配置,直接调接口就好

后端接口返回订单信息
let params = {
						orderId: _this.orderId,
						emplyeeNo: _this.formInfos.emplyeeNo,
						titleId: _this.formInfos.invoiceTitleId
					}
					Api.nuonuoPay(params).then(payRes => {
						_this.wxPayment(payRes.data)
							.then(() => {
								//跳转到支付成功页面
							})
							.catch(err => {
								console.log(err, '错误')
							})
					}).catch(err => {
						console.log(err, '错误')
					})

/**
			 * 发起支付请求-微信支付
			 * @param {Object} 参数
			 */
			wxPayment(options) {
				var _this = this;
				return new Promise((resolve, reject) => {
					uni.requestPayment({
						provider: 'wxpay',
						timeStamp: options.timeStamp, // 时间戳(单位:秒) 当前
						nonceStr: options.nonceStr, //随机字符串,长度为32个字符以下。
						package: options.package, //统一下单接口返回的 prepay_id 参数值
						signType: options.signType, //签名算法,应与后台下单时的值一致
						paySign: options.paySign, // 签名,这里用的 MD5/RSA 签名
						success: res => resolve(res),
						fail: res => reject(res)
					})
				})
			}

五.地址授权

uni.getLocation(OBJECT)
注意这边获取address 只有app 支持,其他都是获取经纬度
这个会弹出定位授权的弹出框

uni.getLocation({
						type: 'gcj02',
						geocode: true,
						altitude: true,
						isHighAccuracy: true,
						success: function(res) {
							console.log(res, '经纬度')
							const longitude = res.longitude + ',' + res.latitude
							//这边经纬度 传给后端 转成正确地址
						},
						fail: function(err) {
							console.log(err, 'err')
						}
					});

六.分享页面以及我的名片-onShareAppMessage

		async onShareAppMessage(res) {
		
			const config = await getShaerConfig({
				type: '2',
				subtype: '1'
			})
			const returnParams = {
				title: data.title,
				content: data.content,
				imageUrl: data.imageUrl
			}
			//分享的内容请求后端的接口
			return {
				...returnParams,
				path: 'pages/index/index'//分享的路径
			}
		},
		同理
				onShareAppMessage() {
			return {
				title: `您好,我是${this.userInfo.name}。这是我的名片请惠存。`,
				path: '/pages/user/businessCard?id=' + this.id,
			}
		},

补充图片可以转发,分享。增加:show-menu-by-longpress=“true”

七.发起订阅-uni.requestSubscribeMessage

取消后,就不会弹出来,需要在小程序设置内,打开

	uni.requestSubscribeMessage({
								tmplIds: [
									'W7LUiaNM',
									'XFu6M206S1wWGaaoU',
									'9siJPU2cCfSUkHF8RBQ'
								],
								success(res) {
									if (res['W7LUiaNM'] ===
										'accept') { // 用户点击确定后
										console.log('已经授权');
									} else {
										console.log('未授权')
									}
								}
							})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/180426.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型AI Agent 前沿调研

前言 大模型技术百花齐放&#xff0c;越来越多&#xff0c;同时大模型的落地也在紧锣密鼓的进行着&#xff0c;其中Agent智能体这个概念可谓是火的一滩糊涂。 今天就分享一些Agent相关的前沿研究&#xff08;仅限基于大模型的AI Agent研究&#xff09;&#xff0c;包括一些论…

解决kubernetes中微服务pod之间调用失败报错connection refused的问题

现象&#xff1a; 从这里可以看到是当前服务在调用product service服务是出现了连接拒绝connection refused 走读一下原始代码&#xff1a; 可以看到请求是由FeignClient代理发出的 &#xff0c;但问题在于为什么Feign请求的时候会产生connection refused错误&#xff1f; 上…

2014年9月26日 Go生态洞察:使用Docker部署Go服务器

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

最近整理一份steam搬砖的项目操作细节和详细要求

csgo饰品搬砖Steam饰品搬砖全套操作流程之如何卖货 一、国外Steam游戏装备汇率差项目 这个项目的基本原理是 购买国外Steam游戏平台上的装备&#xff0c;再在国内网易Buff平台上或国际站csgo饰品平台进行售卖。从充值汇率和两个平台的装备价格差中获得利润。 二、需要准备的硬…

EMG肌肉电信号处理合集(二)

本文主要展示常见的肌电信号特征的提取说明。使用python 环境下的Pysiology计算库。 目录 1 肌电信号第一次burst的振幅&#xff0c; getAFP 函数 2 肌电信号波长的标准差计算&#xff0c;getDASDV函数 3 肌电信号功率谱频率比例&#xff0c;getFR函数 4 肌电信号直方图…

738. Monotone Increasing Digits 968. Binary Tree Cameras

738. Monotone Increasing Digits An integer has monotone increasing digits单调递增数字 if and only if each pair of adjacent digits x and y satisfy x < y. Given an integer n, return the largest number that is less than or equal to n with monotone increa…

华为OD机试 - 找朋友(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述大白话解释一下就是&#xff1a;1、输入&#xff1a;2、输出&#xff1a;3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专…

DevExpress WinForms TreeMap组件,用嵌套矩形可视化复杂分层数据

DevExpress WinForms TreeMap控件允许用户使用嵌套的矩形来可视化复杂的平面或分层数据结构。 DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风…

vue3 使用simplebar【滚动条】

1.下载simplebar-vue npm install simplebar-vue --save2.引入注册 import simplebar from "simplebar-vue"; import simplebar-vue/dist/simplebar.min.css import simplebar-vue/dist/simplebar-vue.jsvue2的版本基础上 【引入注册】 import simplebar from &qu…

c语言:回文字符串

题目&#xff1a; 思路&#xff1a; 创建一个字符数组&#xff0c;然后判断字符串长度&#xff0c;用循环&#xff0c;看对应字符是否相等&#xff0c;相等则输出&#xff0c;不相等则将对应字符ascll较大的改成ascll较小的&#xff08;题目要求字典最小的情况&#xff09;。…

【办公常识_1】写好的代码如何上传?使用svn commit

首先找到对应的目录 找到文件之后点击SVN Commit

HT71782 同步集成升压转换器

HT71782是一款高功率、全集成升压转换器&#xff0c;集成16mΩ功率开关管和18mΩ同步整流管&#xff0c;为便携式系统提供G效的小尺寸处理方案。 HT71782采用自适应恒定关断时间峰值电流控制拓扑结构来调节输出电压。在中等到重负载条件下&#xff0c;HT71782工作在PWM 模式。轻…

Python中列表和字符串常用的数据去重方法你还记得几个?

Python中列表和字符串常用的数据去重方法你还记得几个&#xff1f; 1 关于数据去重2 字符串去重2.1 for方法2.2 while方法2.3 列表方法2.4 直接删除法2.5 fromkeys方法 3 列表去重3.1 for方法3.2 set方法13.3 set方法23.4 count方法3.5 转字典法 4 完整代码 1 关于数据去重 关…

安卓毕业设计基于安卓android微信小程序的培训机构系统

项目介绍 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个开发过程首先对培训机构管理系统进行需求分析&#xff0c;得出培训机构管理系统主要功能。接着对培训机构管理系统 进行…

Zoho Bigin和标准版CRM有什么区别?

Zoho Bigin是Zoho公司推出的一款针对小微企业设计的CRM系统&#xff0c;它与Zoho CRM一脉相承&#xff0c;但更加轻量级&#xff0c;快速帮助小微企业实现数字化销售。下面来说说&#xff0c;Zoho Bigin是什么&#xff1f;它适合哪些企业&#xff1f; 什么是Zoho Bigin&#x…

基于51单片机设计的人体温度检测与存储系统

一、前言 随着科技的快速发展和人们对健康生活的追求,准确、便捷的体温检测成为日常生活中的重要需求。在当前全球健康环境下,特别是在一些公共场合和家庭中,快速筛查体温以预防疾病传播变得至关重要。基于这一需求,当前设计了基于51单片机的温度检测与存储系统。 传统体…

单片机调试技巧--栈回溯

在启动文件中修改 IMPORT rt_hw_hard_fault_exceptionEXPORT HardFault_Handler HardFault_Handler PROC; get current contextTST lr, #0x04 ; if(!EXC_RETURN[2])ITE EQMRSEQ r0, msp ; [2]0 > Z1, get fault context from h…

51单片机PWM控制LED灯渐明渐暗实验

51单片机PWM控制LED灯渐明渐暗实验 1.概述 这篇文章介绍单片机的PWM通过占空比控制LED灯的渐明渐暗效果&#xff0c;通过该实验掌握PWM的原理以及应用它做一些事情。 2.操作步骤 2.1.硬件电路 1.硬件准备 名称型号数量单片机STC12C20521LED彩灯无2晶振12MHZ1电容30pf2电阻…

Log4j

通过Log4j&#xff0c;我们可以控制日志信息输送到目的地是控制台、文件、GUI组件&#xff0c;甚至是套接口服务器、NT的事件记录器。我们可以控制每一条日志的输出格式。通过定义每一条日志信息的级别&#xff0c;能更加细致地控制日志的生成过程。 1 log4j、log4j2与SLF4J …

学习量化交易如何入门?

Python 量化入门很简单&#xff0c;只需 3 步就能快速上手! 题主在程序方向没有相关经验&#xff0c;今天就从量化行业的通用语言-Python 着手&#xff0c;教大家如何快速入门。 一、准备工作 在开始 Python 编程之前&#xff0c;首先需要确保你的计算机上安装了合适的 Pytho…