在我的Android应用程序中,我正在尝试加载一个网页(必须访问相机)WebView.在我的笔记本电脑上,当我加载网页时,我可以访问相机.
html显示页面上的其他所有内容.
这是我正在申请的许可 Manifest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.webkit.PermissionRequest" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
我将SDK设置如下:
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="21" />
Run Code Online (Sandbox Code Playgroud)
这是我的webview设置:
private void setMyWebviewSettings(WebSettings MyWebviewSettings){
MyWebviewSettings.setAllowFileAccessFromFileURLs(true);
MyWebviewSettings.setAllowUniversalAccessFromFileURLs(true);
MyWebviewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
MyWebviewSettings.setJavaScriptEnabled(true);
MyWebviewSettings.setDomStorageEnabled(true);
MyWebviewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
MyWebviewSettings.setBuiltInZoomControls(true);
MyWebviewSettings.setAllowFileAccess(true);
MyWebviewSettings.setSupportZoom(true);
}
Run Code Online (Sandbox Code Playgroud)
如果我可以直接从我的应用程序访问相机(使用正常活动),为什么我不能从内部打开它WebView?
我遇到一个问题,当我单击 web 视图中的任何链接时,它会自动打开 chrome 浏览器并打开那里的链接
我在这里粘贴主要的活动类。
class MainActivity : AppCompatActivity() {
private val url = "https://stackoverflow.com/"
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webview)
// Get the web view settings instance
val settings = webView.settings
// Enable java script in web view
settings.javaScriptEnabled = true
// Enable and setup web view cache
settings.setAppCacheEnabled(true)
settings.cacheMode = WebSettings.LOAD_DEFAULT
settings.setAppCachePath(cacheDir.path)
// Enable zooming in web view
settings.setSupportZoom(false)
settings.builtInZoomControls = false
settings.displayZoomControls = false
// Zoom web …Run Code Online (Sandbox Code Playgroud)