Android Kotlin WebView 加载 OSS 网络图片不显示问题解决办法
在Android Kotlin中使用原始WebView加载HTML时,可能会遇到<img>标签中oss网络地址图片不显示的问题。这是因为WebView默认不支持加载网络图片,需要进行一些配置才能正确显示。下面是详细的解决办法:\n\n1. 在AndroidManifest.xml中添加Internet权限:\nxml\n<uses-permission android:name="android.permission.INTERNET" />\n\n\n2. 创建一个自定义的WebViewClient,并重写shouldOverrideUrlLoading方法。在该方法中,判断加载的URL是否为网络图片地址,如果是,则使用自定义的方式加载图片:\nkotlin\nclass CustomWebViewClient : WebViewClient() {\n override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {\n if (url != null && url.endsWith(".jpg") || url.endsWith(".jpeg") || url.endsWith(".png")) {\n view?.loadUrl("javascript:window.location="\"$url\"\"")\n return true\n }\n return super.shouldOverrideUrlLoading(view, url)\n }\n}\n\n\n3. 在加载HTML的Activity中,设置WebView的WebViewClient为自定义的WebViewClient:\nkotlin\nwebView.webViewClient = CustomWebViewClient()\n\n\n4. 在HTML中,将<img>标签的src属性值修改为data URL格式,并在前面添加"javascript:"前缀。例如:\nhtml\n<img src="javascript:data:image/png;base64,iVBORw0KG..." />\n\n\n这样,就能够正确加载并显示网络图片了。注意,这种方式会将网络图片的内容以Base64编码的形式嵌入到HTML中,可能会增加HTML文件的大小。如果需要显示大量的网络图片,建议使用其他方式,如使用第三方图片加载库或自定义WebView,以提高性能和加载速度。
原文地址: https://www.cveoy.top/t/topic/qprw 著作权归作者所有。请勿转载和采集!