android - 如何从 javascript 中的 WebView 获取我的 Android / iOS 应用程序的权限?
问题描述
我想知道如何从 javascript 中的 webview 获取或读取用户在我的应用程序中授予的权限。例如,在我的 web 视图中,我占用了摄像头,但是如果用户拒绝访问摄像头,正如我可以从我在 javascript 中的 webview 中知道的那样,摄像头的使用被拒绝并且不向用户显示选项(因为那会截断我的应用
PD:最好不涉及 IOS / ANDROID 的修改。
谢谢..
解决方案
你需要的是一个 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。
推荐阅读
- jquery - 如何在服务器上保存修改
- drop-down-menu - 如何在 Flutter 中创建自定义下拉列表?
- c++ - CMake 和 CUDA 的权限错误
- java - 如何使用无参数构造函数持有数组对象而没有空指针异常
- php - PHP/SQL 奇怪的输出
- azure-active-directory - 使用 EmbedApiSample 生成带有 ClientID 和登录凭据的嵌入令牌时出现问题
- javascript - 使用一个脚本发布多个模式
- reactjs - 在 Lambda 函数中验证 Cognito 会话
- c - ISR 无法更改嵌入式 C 中的外部结构字段
- python - 运行此 python 文件时发现错误