tencent cloud

腾讯云超级应用服务

动态与公告
【2025年1月2日】关于腾讯云小程序平台更名为腾讯云超级应用服务的公告
控制台更新动态
Android SDK 更新动态
iOS SDK 更新动态
Flutter 更新动态
IDE 更新动态
基础库更新动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
按量计费(后付费)
续费指引
停服说明
快速入门
套餐管理
概述
控制台账号管理
存储配置
加速配置
品牌化配置
平台功能
控制台登录
用户和权限体系
小程序管理
小游戏管理
应用管理
商业化
平台管理
用户管理
团队管理
运营管理
安全中心
代码接入指引
Demo 及 SDK 获取
Android
iOS
Flutter
App 服务端接入指南
GUID 生成规则
小程序开发指南
小程序介绍与开发环境
小程序代码组成
指南
框架
组件
API
服务端
JS SDK
基础库
IDE 使用指南
小游戏开发指南
指南
API
服务端
实践教程
小程序登录实践教程
小程序订阅消息实践教程
支付相关实践教程
广告接入实践教程
小游戏订阅消息实践教程
相关协议
数据处理和安全协议

小程序权限弹框

PDF
聚焦模式
字号
最后更新时间: 2025-08-29 17:31:11

定制授权弹窗

当小程序调用的 API 需要授权时,SDK 提供如下默认的授权 UI 样式:

开发者也可以通过如下方法自定义授权 UI 样式。
自定义授权弹窗:
重写 AbsMiniUiProxy 的 showAuthView 方法;
参数 Context 表示小程序进程的上下文;
参数 MiniAuthInfo 包含有当前小程序所请求的授权信息,详见 MiniAuthInfo
API 定义如下:
/**
* 自定义授权弹窗view
* 调用环境:子进程
*
* @param context 当前页面上下文
* @param authInfo 授权信息
* @return true:自定义授权view;false:使用内置
*/
boolean showAuthView(Activity context, MiniAuthInfo authInfo);
注意:
MiniAuthInfo 中的 refuseListener 和 grantListener 表示授权弹窗的监听,必须正常回调,否则会导致小程序授权异常。
示例代码如下
@Override
public boolean showAuthView(Activity context, MiniAuthInfo authInfo) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(authInfo.authTitle);
builder.setMessage(authInfo.authDesc);
builder.setCancelable(false);
buid
builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 授权成功
authInfo.grantListener.onClick(null);
}
});

builder.setNegativeButton("Refuse", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
authInfo.refuseListener.onClick(null);
}
});
builder.create().show();
return true;
}

定制手机号授权弹窗

小程序获取手机号时,需先经过用户授权,SDK 提供了默认的授权弹窗,你也可以通过重写AbsMiniUiProxy.showGetPhoneDialog实现自定义弹窗
参数 activity 表示小程序所在 Activity;
参数 MiniAuthInfo 包含有当前小程序所请求的授权信息,详见 MiniAuthInfo
/**
* 展示获取手机号授权弹框
* @param activity
* @param authInfo 授权信息
* @return true 表示使用自定义对话框,false表示使用 SDK 默认对话框
*/
boolean showGetPhoneDialog(Activity activity, MiniAuthInfo authInfo);
示例代码:
@Override
public boolean showGetPhoneDialog(Activity context, MiniAuthInfo authInfo) {
MiniCustomDialog dialog = DialogUtil.createCustomDialog(context, DialogUtil.ALERT_DIALOG);
// 授权弹框标题
dialog.setTitle(authInfo.authTitle);
// 授权弹框描述
dialog.setMessage(authInfo.authDesc);
// todo 根据需要,通过authInfo.maskValue获取掩码的手机号并展示
// 设置授权回调
dialog.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
authInfo.grantListener.onClick(null);
}
});
// 设置拒绝回调
dialog.setNegativeButton("Refuse", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
authInfo.refuseListener.onClick(null);
}
});
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
authInfo.refuseListener.onClick(null);
}
});
dialog.show();
return true;
}

定制邮箱授权弹窗

小程序获取邮箱地址时,需先经过用户授权,SDK 提供了默认的授权弹窗,你也可以通过重写AbsMiniUiProxy.showGetEmailDialog实现自定义弹窗
参数 activity 表示小程序所在 Activity;
参数 MiniAuthInfo 包含有当前小程序所请求的授权信息,详见 MiniAuthInfo
/**
* 展示获取邮箱授权弹框
* @param activity
* @param authInfo 授权信息
* @return true 表示使用自定义对话框,false表示使用 SDK 默认对话框
*/
boolean showGetEmailDialog(Activity activity, MiniAuthInfo authInfo);
示例代码:
@Override
public boolean showGetEmailDialog(Activity context, MiniAuthInfo authInfo) {
MiniCustomDialog dialog = DialogUtil.createCustomDialog(context, DialogUtil.ALERT_DIALOG);
// 授权弹框标题
dialog.setTitle(authInfo.authTitle);
// 授权弹框描述
dialog.setMessage(authInfo.authDesc);
// todo 根据需要,通过authInfo.maskValue获取掩码的邮箱地址并展示
// 设置授权回调
dialog.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
authInfo.grantListener.onClick(null);
}
});
// 设置拒绝回调
dialog.setNegativeButton("Refuse", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
authInfo.refuseListener.onClick(null);
}
});
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
authInfo.refuseListener.onClick(null);
}
});
dialog.show();
return true;
}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈