Android webview加载页面获取摄像头权限实践(Kotlin)
生活随笔
收集整理的這篇文章主要介紹了
Android webview加载页面获取摄像头权限实践(Kotlin)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景介紹:
Android app中的webview加載含攝像頭相關邏輯的H5頁面,進行賦權的操作
H5頁面調取攝像頭邏輯:
vue編寫
<template><div><p>test page</p><div><video ref="video1" width="300" height="300" autoplay muted playsinline='true' webkit-playsinline='true' controls></video></div><div @click="run">start</div></div> </template><script> export default {name: "TestPage",mounted() {},methods: {async run() {if (navigator.mediaDevices.getUserMedia) {navigator.mediaDevices.getUserMedia({ video: true }).then((stream) => {this.$refs.video1.srcObject = stream}).catch((err) => {console.log('Camera Error: ' + err.name + ' ' + err.message);});} else {console.log("搞飛機")}},} } </script><style scoped></style>Android部分:
一:AndroidManifest.xml部分
新增相關權限
<uses-permission android:name="android.permission.CAMERA"/><uses-permission android:name="android.webkit.PermissionRequest" /><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />二:webview部分
<?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".QimuActivity"><WebViewandroid:id="@+id/webView"android:layout_width="match_parent"android:layout_height="match_parent" /> </LinearLayout> class QimuActivity : AppCompatActivity() {var web_url: String = "" // url地址@RequiresApi(Build.VERSION_CODES.LOLLIPOP)override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)ActivityCompat.requestPermissions(this@QimuActivity, arrayOf(Manifest.permission.CAMERA),1010) // 提前獲取攝像頭權限setContentView(R.layout.activity_qimu)val webView: WebView = findViewById(R.id.webView)web_url = intent.getStringExtra("web_url").toString()webView.settings.userAgentString = "app/liveless"webView.settings.javaScriptEnabled = truewebView.settings.domStorageEnabled = truewebView.settings.defaultTextEncodingName = "UTF-8"webView.settings.allowContentAccess = true // 是否可訪問Content Provider的資源,默認值 truewebView.settings.allowFileAccess = truewebView.settings.allowContentAccess = truewebView.settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOWwebView.webChromeClient = object : WebChromeClient() {@RequiresApi(Build.VERSION_CODES.LOLLIPOP)override fun onPermissionRequest(request: PermissionRequest?) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {request!!.grant(request.resources)}}}webView.loadUrl(web_url)} }點個贊再走吧!😁
總結
以上是生活随笔為你收集整理的Android webview加载页面获取摄像头权限实践(Kotlin)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RSA非对称加密和解密(同时生成密钥)
- 下一篇: Windows10 LTSC 2021