kotlin I/chromium:[信息:控制台(0)]“不允许加载本地资源:文件:///android资产/下载器. png”,

z31licg0  于 2023-01-26  发布在  Kotlin
关注(0)|答案(2)|浏览(306)

我创建了一个按钮,使用Java脚本函数内Vimeo脚本,我现在想改变按钮使用我的资产图像,但它给我这个错误。

    • 我尝试了所有可能**
with(binding.webView) {
    settings.apply {
        pluginState = WebSettings.PluginState.ON
        displayZoomControls = true
        useWideViewPort = true
        loadWithOverviewMode = true

        javaScriptEnabled = true
        useWideViewPort = true
        setGeolocationEnabled(true)
        domStorageEnabled = true
        databaseEnabled = true
        setSupportMultipleWindows(true)
        setNeedInitialFocus(true)
        loadWithOverviewMode = true
        loadsImagesAutomatically = true
        setAppCacheEnabled(true)
        javaScriptCanOpenWindowsAutomatically = true
        blockNetworkImage = false
        builtInZoomControls = false
        mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
    }
    webViewClient = mWebViewClient
    webChromeClient = mWebChromeClient
    addJavascriptInterface(this, "Downloader")
    loadUrl("https://vimeo.com/watch")
}
    • 我试过Webview评估**

x一个一个一个一个x一个一个二个x

    • 日志错误:**
  • "不允许加载本地资源:文件:///android资产/下载器. png ",

数据源:https://vimeo.com/743245118(0)

  • "[仅报告]拒绝加载映像" file:///android_asset/downloader.png ",因为它违反了以下内容安全策略指令:"默认源https:数据:blob:wss:"unsafe-inline""unsafe-eval'"。请注意,未显式设置" img-src ",因此" default-src "用作回退。
pod7payv

pod7payv1#

WebViewAssetLoader专为帮助你从伪HTTP URI加载应用资产而设计。这些资产是从HTTP方案URI加载的,因为通常禁止网页从本地文件系统加载任意文件。这就是"不允许加载本地资源"和内容安全策略诊断试图告诉你的。
所以与其说

img.src = "file:///android_asset/downloader.png";

你应该注射

img.src = "https://appassets.androidplatform.net/assets/downloader.png";

还请注意更改的路径/assets/,以匹配.addPathHandler中的注册。

goucqfw6

goucqfw62#

大多数社交网站阻止任何渲染或任何媒体文件,因此您只能加载平台网站允许的任何媒体文件,如GIPHY是大多数网站允许渲染媒体文件的平台。
但Facebook或Instagram只允许从他们的服务器只渲染媒体文件,但如果你可以插入svg标签内的任何元素,然后它会工作.

相关问题