I have tried a lot to load pdf file from local storage to inside the webview. I have shown the implementation below. please check and let me know if you can guide me
webView.settings.javaScriptEnabled = true
webView.settings.builtInZoomControls = true
webView.webViewClient = object : WebViewClient() {
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
}
override fun onPageFinished(view: WebView?, url: String?) {
// PDF file has finished loading
val test = url
// Toast.makeText(this, url, Toast.LENGTH_SHORT).show()
}
override fun onReceivedError(view: WebView?, request: WebResourceRequest?, error: WebResourceError?) {
// An error has occurred while loading the PDF file
val test = error?.description
}
}
// Load the PDF file into the WebView
try {
val inputStream = assets.open("test.pdf")
val data = ByteArray(inputStream.available())
inputStream.read(data)
inputStream.close()
val base64 :String = android.util.Base64.encodeToString(
data, android.util.Base64.DEFAULT)
val mimeType = "application/pdf"
val encoding = "utf-8"
val html = "<iframe src='data:$mimeType;base64,$base64' " +
"width='100%' height='100%' " +
"style='border: none;'></iframe>"
webView.loadData(html, mimeType, encoding)
} catch (e: Exception) {
e.printStackTrace()
Log.e("TAG", e.toString())
}
Manifest permission
<uses-permission android:name="android.permission.INTERNET" />