feat:适配网页实名认证的权限申请

This commit is contained in:
Max
2024-03-20 19:10:34 +08:00
parent c0bbabaa1c
commit 114255fae4
2 changed files with 37 additions and 1 deletions

View File

@@ -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);

View File

@@ -991,7 +991,7 @@
<string name="diamond_inning">%d钻/局</string>
<string name="permission_denied_tips_mic">为了实现连麦及语音输入等功能,请您允许应用向您获取“麦克风”权限</string>
<string name="permission_denied_tips_image">访问你的本地内容,以能正常使用图片上传、视频发送等应用功能</string>
<string name="permission_denied_tips_camera">用于拍摄更新个人头像、发布动态、与客服反馈问题时进行照片和视频的拍摄录制</string>
<string name="permission_denied_tips_camera">用于拍摄更新个人头像、发布动态、实名认证、与客服反馈问题时进行照片和视频的拍摄录制</string>
<string name="all_service_gift_room_go">去围观</string>
<string name="all_service_gift_room_go_title">前往围观</string>