Uniapp – API使用说明 – 授权操作

授权操作

uni.authorize(OBJECT)

提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。如果用户之前拒绝了授权,此接口会直接进入失败回调,一般搭配uni.getSettinguni.openSetting使用。

OBJECT 参数说明

参数 类型 必填 说明
scope String 需要获取权限的 scope,详见 scope 列表。
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
#scope 列表
scope 对应接口 描述 平台差异说明
scope.userInfo uni.getUserInfo 用户信息
scope.userLocation uni.getLocation, uni.chooseLocation 地理位置
scope.userLocationBackground wx.userLocationBackground 后台定位 微信小程序
scope.address uni.chooseAddress 通信地址
scope.record uni.getRecorderManager 录音功能
scope.writePhotosAlbum uni.saveImageToPhotosAlbum, uni.saveVideoToPhotosAlbum 保存到相册 抖音小程序的返回值是scope.album
scope.camera <camera /> 组件,头条下的扫码、拍照、选择相册 摄像头
scope.invoice wx.chooseInvoice 获取发票 微信小程序、QQ小程序
scope.invoiceTitle uni.chooseInvoiceTitle 发票抬头 微信小程序、百度小程序、QQ小程序
scope.werun wx.getWeRunData 微信运动步数 微信小程序

 

注意:scope.userLocation 权限需要在 manifest.json 配置 permission, 详见:https://uniapp.dcloud.io/collocation/manifest

uni.authorize({
    scope: 'scope.userLocation',
    success() {
        uni.getLocation()
    }
})

 

 

uni.openSetting(OBJECT)

调起客户端小程序设置界面,返回用户设置的操作结果。

属性 类型 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数

属性 类型 说明
authSetting Object 用户授权结果,其中 key 为 scope 值,value 为 Boolean 值,表示用户是否允许授权

 

uni.openSetting({
  success(res) {
    console.log(res.authSetting)
  }
});

 

 

uni.getSetting(OBJECT)

获取用户的当前设置。

属性 类型 默认值 必填 说明
withSubscriptions Boolean false 是否同时获取用户订阅消息的订阅状态,默认不获取。注意:withSubscriptions 只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。 (微信小程序 2.10.1 支持)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数

属性 类型 说明
authSetting Object 用户授权结果,其中 key 为 scope 值,value 为 Boolean 值,表示用户是否允许授权
subscriptionsSetting SubscriptionsSetting 用户订阅消息设置,接口参数withSubscriptions值为true时才会返回。(微信小程序 2.10.1 支持)
uni.getSetting({
   success(res) {
      console.log(res.authSetting)
   }
})

 

 

收货地址

uni.chooseAddress(OBJECT)

获取用户收货地址。调起用户编辑收货地址原生界面,并在编辑完成后返回用户选择的地址,需要用户授权 scope.address。

OBJECT参数说明

属性 类型 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明

属性 类型 说明 平台差异说明
userName string 收货人姓名
postalCode string 邮编
provinceName string 国标收货地址第一级地址
cityName string 国标收货地址第二级地址
countyName string 国标收货地址第三级地址
streetName string 国标收货地址第四级地址 微信小程序
detailInfo string 详细收货地址信息
detailInfoNew string 新选择器详细收货地址信息 微信小程序
nationalCode string 收货地址国家码
telNumber string 收货人手机号码
errMsg string 错误信息 微信小程序
uni.chooseAddress({
  success(res) {
    console.log(res.userName)
    console.log(res.postalCode)
    console.log(res.provinceName)
    console.log(res.cityName)
    console.log(res.countyName)
    console.log(res.detailInfo)
    console.log(res.nationalCode)
    console.log(res.telNumber)
  }
})

 

 

获取发票抬头

uni.chooseInvoiceTitle(OBJECT)

选择用户的发票抬头,需要用户授权 scope.invoiceTitle。

在微信小程序中,当前小程序必须关联一个公众号,且这个公众号是完成了微信认证的,才能调用 chooseInvoiceTitle。

OBJECT参数说明

属性 类型 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明

属性 类型 说明 平台差异说明
type string 抬头类型(0:单位,1:个人)
title string 抬头名称
taxNumber string 抬头税号
companyAddress string 单位地址
telephone string 手机号码
bankName string 银行名称
bankAccount string 银行账号
errMsg string 错误信息 微信小程序

 

uni.chooseInvoiceTitle({
    success(res) {
        console.log(res.type);
        console.log(res.title);
        console.log(res.taxNumber);
        console.log(res.companyAddress);
        console.log(res.telephone);
        console.log(res.bankName);
        console.log(res.bankAccount);
  }
})

 

 

小程序跳转

打开另一个小程序。

OBJECT 参数说明

属性 类型 默认值 必填 说明 平台差异说明
appId string 要打开的小程序 appId(百度小程序则填写App Key)
path string 打开的页面路径,如果为空则打开首页
extraData object 需要传递给目标小程序的数据,目标小程序可在 App.vue  onLaunchonShow 中获取到这份数据。
envVersion string release 要打开的小程序版本,有效值: develop(开发版),trial(体验版),release(正式版)。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。 支付宝小程序、微信小程序、抖音小程序
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)
uni.navigateToMiniProgram({
  appId: '',
  path: 'pages/index/index?id=123',
  extraData: {
    'data1': 'test'
  },
  success(res) {
    // 打开成功
  }
})

 

跳转回上一个小程序,只有当另一个小程序跳转到当前小程序时才会能调用成功。

OBJECT参数说明

属性 类型 必填 说明
extraData Object 需要返回给上一个小程序的数据,上一个小程序可在 App.vue  onShow 中获取到这份数据
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)
uni.navigateBackMiniProgram({
  extraData: {
    'data1': 'test'
  },
  success(res) {
    // 返回成功
  }
})

 

uni.openEmbeddedMiniProgram(OBJECT)

微信小程序跳转小程序(半屏模式)(从微信础库 2.20.1 开始支持)

当小程序需要打开另一个小程序让用户进行快捷操作时,可将要打开的小程序以半屏的形态跳转。

调用流程

  1. 微信小程序2.23.1以下版本基础库,开发者需要在全局配置manifest.json-->mp-weixin节点下添加embeddedAppIdList字段并声明需要半屏跳转的小程序,若不配置将切换为普通的小程序跳转小程序。2.23.1及以上版本起无需配置。
	{
		"mp-weixin" : {
		   "embeddedAppIdList": ["wxe5f52902cf4de896"]//需要半屏跳转的小程序appid
		}
	}
  1. 开发者通过调用uni.openEmbeddedMiniProgram半屏跳转小程序:
属性 类型 默认值 必填 说明
appId string 要打开的小程序 appId
path string 打开的页面路径,如果为空则打开首页。path 中 ? 后面的部分会成为 query,在小程序的App.vue  onLaunchonShow和 Page.onLoad 的回调函数中可以获取到 query 数据。对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。详见
extraData object 需要传递给目标小程序的数据,目标小程序可在 App.vue  onLaunchonShow 中获取到这份数据。详见
envVersion string release 要打开的小程序版本,有效值: develop(开发版),trial(体验版),release(正式版)。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。
shortLink string 小程序链接,当传递该参数后,可以不传 appId 和 path。链接可以通过【小程序菜单】->【复制链接】获取。
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)
uni.openEmbeddedMiniProgram({
	appId: '',
	path: 'pages/index/index?id=123',
	extraData: {
		'data1': 'test'
	},
	success(res) {
    // 打开成功
	}
})

使用限制

2022年3月18日后,使用过程有以下限制,若不符合以下所有条件将被自动切换为普通的小程序跳转小程序,不影响用户使用:

  1. 被半屏跳转的小程序需要通过来源小程序的调用申请,开发者可在 小程序管理后台「设置」-「第三方设置」-「半屏小程序管理」板块发起申请,最多可以申请10个小程序;
  2. 微信小程序2.23.1版本以下基础库,被半屏打开的小程序需要在全局配置manifest.json-->mp-weixin节点下添加embeddedAppIdList字段并声明;
  3. 当前小程序需为竖屏;
  4. 被半屏跳转的小程序需为非个人主体小程序(不含小游戏)

2022年3月18日前,使用过程有以下限制,若不符合以下所有条件将被自动切换为普通的小程序跳转小程序,不影响用户使用:

  1. 不能在横屏下打开半屏小程序
  2. 能打开小游戏
  3. 跳转目标小程序需符合以下类目,详见小程序文档

 

账号信息

uni.getAccountInfoSync()

获取当前帐号信息,可以返回小程序的Appid。如果使用了微信小程序的云端插件,还可以返回当前插件Appid、版本号。

返回值

Object

帐号信息

属性 类型 说明 平台差异说明
miniProgram Object 小程序帐号信息
plugin Object 插件帐号信息(仅在插件中调用时包含这一项) 京东、快手小程序不支持

miniProgram 的结构

属性 类型 说明 平台差异说明
appId string 小程序 appId
envVersion string 小程序 当前环境版本:develop开发版、trial体验版、release正式版、gray灰度版(仅支付宝小程序支持) 京东小程序不支持
version string 线上小程序版本号(仅在正式版小程序上支持) 京东小程序不支持

plugin 的结构

属性 类型 说明
appId string 插件 appId
version string 插件版本号

 

const accountInfo = uni.getAccountInfoSync();
console.log(accountInfo.miniProgram.appId); // 小程序 appId
console.log(accountInfo.plugin.appId); // 插件 appId
console.log(accountInfo.plugin.version); // 插件版本号, 'a.b.c' 这样的形式

 

 

 

 

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
Uniapp – API使用说明 – 授权操作
授权操作 uni.authorize(OBJECT) 提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授……
<<上一篇
下一篇>>