Skip to content

Commit 74f1e6c

Browse files
authored
Merge pull request #2 from CoolBitX-Technology/fix/import-issue
🐛 fix: 修正遺失的檔案和 method
2 parents a846025 + 6bfb1e9 commit 74f1e6c

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

android/src/main/java/com/reactnativecommunity/webview/RNCWebChromeClient.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,25 @@
33
import android.Manifest;
44
import android.annotation.TargetApi;
55
import android.app.Activity;
6+
import android.app.AlertDialog;
7+
import android.content.DialogInterface;
68
import android.content.pm.PackageManager;
79
import android.net.Uri;
810
import android.os.Build;
11+
import android.os.Handler;
912
import android.os.Message;
1013
import android.view.Gravity;
1114
import android.view.View;
1215
import android.view.ViewGroup;
1316
import android.webkit.ConsoleMessage;
1417
import android.webkit.GeolocationPermissions;
18+
import android.webkit.JsPromptResult;
1519
import android.webkit.PermissionRequest;
1620
import android.webkit.ValueCallback;
1721
import android.webkit.WebChromeClient;
1822
import android.webkit.WebView;
1923
import android.webkit.WebViewClient;
24+
import android.widget.Button;
2025
import android.widget.FrameLayout;
2126

2227
import androidx.annotation.RequiresApi;
@@ -153,11 +158,14 @@ public void onPermissionRequest(final PermissionRequest request) {
153158
ArrayList<String> requestedAndroidPermissions = new ArrayList<>();
154159
for (String requestedResource : request.getResources()) {
155160
String androidPermission = null;
161+
String requestPermissionIdentifier = null;
156162

157163
if (requestedResource.equals(PermissionRequest.RESOURCE_AUDIO_CAPTURE)) {
158164
androidPermission = Manifest.permission.RECORD_AUDIO;
165+
requestPermissionIdentifier = "microphone";
159166
} else if (requestedResource.equals(PermissionRequest.RESOURCE_VIDEO_CAPTURE)) {
160167
androidPermission = Manifest.permission.CAMERA;
168+
requestPermissionIdentifier = "camera";
161169
} else if(requestedResource.equals(PermissionRequest.RESOURCE_PROTECTED_MEDIA_ID)) {
162170
if (mAllowsProtectedMedia) {
163171
grantedPermissions.add(requestedResource);
@@ -170,8 +178,12 @@ public void onPermissionRequest(final PermissionRequest request) {
170178
* Find more details here: https://github.com/react-native-webview/react-native-webview/pull/2732
171179
*/
172180
androidPermission = PermissionRequest.RESOURCE_PROTECTED_MEDIA_ID;
173-
} }
181+
}
182+
}
183+
Uri originUri = request.getOrigin();
184+
String host = originUri.getHost();
174185
// TODO: RESOURCE_MIDI_SYSEX, RESOURCE_PROTECTED_MEDIA_ID.
186+
String alertMessage = String.format("Allow " + host + " to use your " + requestPermissionIdentifier + "?");
175187
if (androidPermission != null) {
176188
if (ContextCompat.checkSelfPermission(this.mWebView.getThemedReactContext(), androidPermission) == PackageManager.PERMISSION_GRANTED) {
177189
AlertDialog.Builder builder = new AlertDialog.Builder(this.mWebView.getContext());
@@ -212,6 +224,10 @@ public void onPermissionRequest(final PermissionRequest request) {
212224
requestPermissions(requestedAndroidPermissions);
213225
}
214226

227+
private void runDelayed(Runnable function, long delayMillis) {
228+
Handler handler = new Handler();
229+
handler.postDelayed(function, delayMillis);
230+
}
215231

216232
@Override
217233
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {

0 commit comments

Comments
 (0)