首页 > 解决方案 > 如何从 javascript 中的 WebView 获取我的 Android / iOS 应用程序的权限?

问题描述

我想知道如何从 javascript 中的 webview 获取或读取用户在我的应用程序中授予的权限。例如,在我的 web 视图中,我占用了摄像头,但是如果用户拒绝访问摄像头,正如我可以从我在 javascript 中的 webview 中知道的那样,摄像头的使用被拒绝并且不向用户显示选项(因为那会截断我的应用

PD:最好不涉及 IOS / ANDROID 的修改。

谢谢..

标签: androidios

解决方案


你需要的是一个 JavaScript 接口:

webView.addJavascriptInterface(new JavaScriptInterface(this), "myApplication");

JavaScriptInterface.java

public class JavaScriptInterface {
    private WeakReference<Activity> mActivityWeakReference;
    public JavaScriptInterface(Activity activity) {
        this.mActivityWeakReference = new WeakReference<>(activity);
    }
    @JavascriptInterface
    public void requestCameraPermission() {
        if (mActivityWeakReference.get() != null) {
            ActivityCompat.requestPermission(mActivityWeakReference.get(), ....);
        }
    }
}

然后在你的 JavaScript 代码中:

window.myApplication = function AndroidClass(){};

window.myApplication.requestCameraPermission();

有关实施的更多信息here


推荐阅读