tencent cloud

小程序权限弹框

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;
}


帮助和支持

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

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

文档反馈