赞
踩
应各大应用市场上架要求,增加权限索取行为用户交互弹窗
详细: https://developer.huawei.com/consumer/cn/doc/app/FAQ-faq-05#h1-1698326401789-0
static const platform = MethodChannel('webview_permission');
platform.setMethodCallHandler((MethodCall call) async {
// 处理回调
switch (call.method) {
case 'requestCameraPermission':
...略
// 回调showPermissionDialog
}
}
/// 通用权限弹窗 /// @permission /// @title /// @desc void showPermissionDialog(Permission permission) { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8.0), ), title: Text(title), content: Text(desc), actions: <Widget>[ TextButton( child: Text('去授权'), onPressed: () { Navigator.of(context).pop(); // 处理权限授予逻辑 permission.request().then((status) { print(status.isGranted); }); }, ), TextButton( child: Text('不'), onPressed: () { // 处理权限拒绝逻辑 Navigator.of(context).pop(); }, ), ], ); }, ); }
import android.content.pm.PackageManager;
import androidx.core.content.ContextCompat;
...略
//
methodChannel4Premission = new MethodChannel(messenger, "webview_permission");
methodChannel4Premission.setMethodCallHandler(this);
判断是否已授权麦克风权限
if (ContextCompat.checkSelfPermission(WebViewFlutterPlugin.activity, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
methodChannel4Premission.invokeMethod("requestMicroPhonePermission", null);
}
判断是否已授权相机权限
if (ContextCompat.checkSelfPermission(WebViewFlutterPlugin.activity, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
methodChannel4Premission.invokeMethod("requestCameraPermission", null);
}
// 列出需要请求的权限 Map<Permission, PermissionStatus> statuses = { Permission.camera: await Permission.camera.status, Permission.location: await Permission.location.status, Permission.microphone: await Permission.microphone.status, }; bool allPermissionsGranted = true; for (final entry in statuses.entries) { if (entry.value != PermissionStatus.granted) { allPermissionsGranted = false; break; } } if (allPermissionsGranted) { // 所有权限都已授权,调用成功的回调函数 onSuccess(); } else { // 批量索取权限 await [ Permission.camera, Permission.location, Permission.microphone, ].request(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。