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