Android kotlin 使用原始WebView加载Html代码 无法加载显示html img标签中oss存储的图片地址
要在Android Kotlin中使用原始WebView加载HTML代码并显示<img>标签中oss存储的图片地址,你需要执行以下步骤:
- 首先,确保你的应用程序已经获取了Internet访问权限。你可以在
AndroidManifest.xml文件中添加以下代码:
<uses-permission android:name="android.permission.INTERNET" />
- 在你的
Activity中,声明一个WebView实例并设置它的属性。这是一个示例代码:
import android.annotation.SuppressLint
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView = findViewById<WebView>(R.id.webView)
webView.settings.javaScriptEnabled = true
// 设置WebViewClient,以便在WebView中加载HTML内容
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
// HTML内容加载完成后,再加载图片
view?.loadUrl("javascript:(function() { " +
"var imgs = document.getElementsByTagName('img'); " +
"for (var i = 0; i < imgs.length; i++) { " +
"imgs[i].src = 'https://your_oss_image_url' + imgs[i].src; " +
"} " +
"})()")
}
}
// 加载HTML代码
val htmlContent = "<html><body><img src='your_image_url'></body></html>"
webView.loadDataWithBaseURL(null, htmlContent, "text/html", "UTF-8", null)
}
}
在上述代码中,webView是在布局文件中定义的WebView控件。我们设置了一些WebView的属性,允许加载JavaScript和使用WebViewClient来加载HTML内容。在onPageFinished方法中,我们使用JavaScript代码将<img>标签中的图片URL替换为oss存储的图片URL。
- 在
AndroidManifest.xml中添加以下权限:
<uses-permission android:name="android.permission.INTERNET" />
确保替换https://your_oss_image_url为你的oss存储图片的URL,并将your_image_url替换为你要显示的图片URL。
这样,当你运行应用程序时,WebView将加载HTML内容并显示<img>标签中oss存储的图片
原文地址: https://www.cveoy.top/t/topic/iI7V 著作权归作者所有。请勿转载和采集!