小程序的某些特殊 API,如定位、相机、相册等,通常会提示用户授权,待用户允许后方可执行API。
小程序容器允许针对 API 调用进行如下扩展:
- 自定义文案提示,接入方可控制文案以及展示样式。
- 允许接入方读写权限配置。
说明:此扩展配置仅在后台已开启
小程序权限控制 时才可用。
小程序权限控制 时才可用。
权限配置
小程序已有默认配置的 key 以及对应的 API,详见下表:
权限 | key | API |
---|---|---|
相机 | camera | scan, chooseImage, chooseVideo |
相册 | album | saveImage, saveVideosToPhotosAlbum |
位置 | location | getLocation, getCurrentLocation |
麦克风 | audioRecord | startAudioRecord, stopAudioRecord, cancelAudioRecord |
您可获取当前小程序已经请求过的权限字典:
自定义展示
mPaaS 支持自定义权限弹框的展示,您可以通过下图中的接口进行设置。
具体实现步骤如下:
-
在容器初始化完成后,指定自定义权限弹框的 delegate。
- (void)application:(UIApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
// 小程序 API 权限管控
[TAAuthorizeStorageManager shareInstance].authorizeAlertDelegate = self;
...
}
-
实现自定义弹框方法。
#pragma mark 小程序 API 权限管控
- (void)showAlertWithTitle:(NSString *)title appName:(NSString *)appName storageKey:(NSString *)storageKey callback:(void (^)(NSInteger index))callback
{
if ([title length] > 0) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
message:nil
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"确定", nil];
self.callback = callback;
[alert show];
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (self.callback) {
if (buttonIndex == alertView.cancelButtonIndex) {
// 用户允许授权,callback 参数为 0
self.callback(0);
}else{
// 用户允许授权,callback 参数为 1
self.callback(1);
}
}
}