微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Kotlin 在 Android Studio 中使用 WebView 阅读 pdf?

如何解决如何使用 Kotlin 在 Android Studio 中使用 WebView 阅读 pdf?

我曾多次尝试使用 WebView 阅读 pdf,但它只显示一个空白屏幕。我应该怎么办? 这是我的代码: 主活动.kt

      class MainActivity : AppCompatActivity() {
    private lateinit var webView: WebView
    @SuppressLint("SetJavaScriptEnabled")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        webView = findViewById(R.id.webview)
        webView.settings.setJavaScriptEnabled(true)

        webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(view: WebView?,url: String?): Boolean {
                view?.loadUrl(url.toString())
                return true
            }
        }
        webView.loadUrl("https://mindorks.s3.ap-south-1.amazonaws.com/courses/MindOrks_Android_Online_Professional_Course-Syllabus.pdf")
    }
}

activity_main.xml

  <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:ignore="MissingConstraints"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp" />
    <TextView
        android:id="@+id/infoTV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

解决方法

遗憾的是,Android WebView 不支持查看 PDF。一些较旧的 Android 设备甚至没有提供查看 PDF 的功能,并依赖用户从 Play 商店下载应用程序才能这样做。您可能需要通过某种客户端(我推荐 Retrofit)通过其 URL 下载 PDF 作为蒸汽或字节数组。从那里,您需要启动一个隐式意图,其中 Uri 设置为 PDF 数据,类型设置为“application/pdf”媒体类型。下载后,请使用 Android Sharesheet 查询任何可接受的应用程序。有一些开源库可以帮助完成这个过程。但是,我在之前的职位上有这个确切的用例,我最终按照描述实施。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。