diff --git a/app/src/main/java/com/nnbc123/app/ui/webview/CommonWebViewActivity.java b/app/src/main/java/com/nnbc123/app/ui/webview/CommonWebViewActivity.java index bf7c71c62..ba7331461 100644 --- a/app/src/main/java/com/nnbc123/app/ui/webview/CommonWebViewActivity.java +++ b/app/src/main/java/com/nnbc123/app/ui/webview/CommonWebViewActivity.java @@ -1,5 +1,6 @@ package com.nnbc123.app.ui.webview; +import android.Manifest; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; @@ -13,6 +14,7 @@ import android.os.Bundle; import android.os.Handler; import android.text.TextUtils; import android.view.View; +import android.webkit.PermissionRequest; import android.webkit.SslErrorHandler; import android.webkit.ValueCallback; import android.webkit.WebBackForwardList; @@ -31,6 +33,9 @@ import com.google.gson.Gson; import com.netease.nim.uikit.StatusBarUtil; import com.netease.nim.uikit.common.util.log.LogUtil; import com.netease.nim.uikit.common.util.string.StringUtil; +import com.nnbc123.app.common.permission.PermissionHelper; +import com.nnbc123.app.ui.widget.dialog.RequestPermissionPromptDialog; +import com.nnbc123.library.utils.ResUtil; import com.orhanobut.logger.Logger; import com.trello.rxlifecycle3.android.ActivityEvent; import com.nnbc123.app.R; @@ -221,6 +226,8 @@ public class CommonWebViewActivity extends BaseActivity implements ShareDialog.O jsInterface.setPosition(mPosition); webView.addJavascriptInterface(jsInterface, "androidJsObj"); webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); + // 允许自动播放 + webView.getSettings().setMediaPlaybackRequiresUserGesture(false); webView.setWebViewClient(new WebViewClient() { @@ -312,6 +319,35 @@ public class CommonWebViewActivity extends BaseActivity implements ShareDialog.O //获取webviewtitle作为titlebar的title wvcc = new WebChromeClient() { + @Override + public void onPermissionRequest(PermissionRequest request) { + String tips = null; + String[] permissions = null; + for (String item : request.getResources()) { + if (item != null && item.equals(PermissionRequest.RESOURCE_VIDEO_CAPTURE)) { + tips = ResUtil.getString(R.string.permission_denied_tips_camera); + permissions = new String[]{Manifest.permission.CAMERA, + Manifest.permission.RECORD_AUDIO}; + } + } + if (permissions == null) { + request.grant(request.getResources()); + return; + } + if (RequestPermissionPromptDialog.Companion.isNeedPrompt() + && !PermissionHelper.INSTANCE.isAllGranted(rxPermissions, permissions)) { + new RequestPermissionPromptDialog(context, tips).show(); + } + checkPermission(isGranted -> { + RequestPermissionPromptDialog.Companion.dismissCurrentDialog(); + if (isGranted) { + request.grant(request.getResources()); + } else { + request.deny(); + } + }, permissions); + } + @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e5f602027..d0aa61fe8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -991,7 +991,7 @@ %d钻/局 为了实现连麦及语音输入等功能,请您允许应用向您获取“麦克风”权限 访问你的本地内容,以能正常使用图片上传、视频发送等应用功能 - 用于拍摄更新个人头像、发布动态、与客服反馈问题时进行照片和视频的拍摄录制 + 用于拍摄更新个人头像、发布动态、实名认证、与客服反馈问题时进行照片和视频的拍摄录制 去围观 前往围观