h5在app打开的webview中请求权限,ios可以完成,android需要对webview进行处理
处理方式:
重写WebChromeClient 的 onPermissionRequest()方法和onJsAlert()方法
onPermissionRequest:权限请求通过
@Override
public void onPermissionRequest(PermissionRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
request.grant(request.getResources());
request.getOrigin();
}
}
onJsAlert:不弹窗直接确认(请保证自己的app有对应的权限,app动态请求权限不在此赘述)
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
result.confirm();
return true;
}
附加flutter中 使用webview_flutter 对应的处理方式
只需要在_controller 创建时 添加权限允许即可
final WebViewController _controller = WebViewController(onPermissionRequest: ( permissionRequest) async {
await permissionRequest.grant();
});