小程序的某些特殊 API,如定位、相机、相册等,通常会提示用户授权,待用户允许后方可执行 API。
小程序容器允许针对 API 调用进行如下扩展:
自定义文案提示,接入方可控制文案以及展示样式。
允许接入方读写权限配置。
说明
此扩展配置仅在后台已开启 小程序权限控制 时才可用。
权限配置
小程序已有默认配置的 key 以及对应的 API,详见下表:
权限 | key | API |
相机 | camera | scan, chooseImage, chooseVideo |
相册 | album | saveImage, saveVideosToPhotosAlbum |
位置 | location | getLocation, getCurrentLocation |
您可获取当前小程序已经请求过的权限字典:
自定义展示
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); } } }
文档内容是否对您有帮助?