React Native menampilkan PDF di tampilan web Android

Saya memiliki aplikasi React Native di mana pada halaman tertentu saya mendapatkan tampilan web (react-native-webview) untuk menampilkan PDF dari server kami.

Di iOS semuanya berfungsi dengan baik, di Android, setiap kali saya mencoba melihat file yang saya dapatkan:

Cannot downoad files as permission was denined. Please provide permission to write to storage, in order to download files.

Saya kemudian menambahkan <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ke manifes saya. Sekarang, saya mendapat peringatan berikut:

masukkan deskripsi gambar di sini

Menurut saya ini cukup menakutkan dan sangat bodoh dari sudut pandang pengalaman pengguna. Saya tidak mengakses foto, media, atau file, yang saya coba lakukan hanyalah menampilkan PDF sederhana di dalam tampilan web. Saya tidak ingin pengguna saya diberikan peringatan seperti itu.

Saat saya mengetuk izinkan, muncul tulisan Downloading... dan mengunduh PDF seperti file yang dapat dibuka di luar aplikasi saya. Saya tidak ingin perilaku ini, saya ingin PDF ditampilkan di dalam tampilan web seperti yang dilakukan iOS.

Bagaimana saya bisa menampilkan PDF di Android menggunakan tampilan web React Native, tanpa dialog menakutkan yang tidak ada hubungannya dengan apa yang sebenarnya saya coba lakukan?

(Saya menggunakan React Native 0.59.9, Android 8.1, Android SDK 28, react-native-web-view 5.12.0)


person Can Poyrazoğlu    schedule 10.07.2019    source sumber
comment
Saya ingat menambahkan url pdf ke url google doc viewer untuk menampilkannya di tampilan web RN di Android. Seperti itu https://docs.google.com/gview?embedded=true&url=<pdf-url-goes-here>. File yang diunduh mungkin karena Content-Disposition: attachment header respons untuk file pdf. Header ini akan memaksa browser untuk mendownload file terlebih dahulu sebelum mengizinkan untuk melihat konten.   -  person Amar    schedule 11.07.2019
comment
tautan terkait: github.com/facebook/react-native/issues/   -  person Amar    schedule 11.07.2019
comment
@Amar beberapa PDF ada di server yang memerlukan otentikasi, tidak yakin apakah menyematkannya seperti itu akan berhasil.   -  person Can Poyrazoğlu    schedule 11.07.2019
comment
Dokumen di balik autentikasi mungkin membuatnya rumit. Dalam hal ini, jika Anda tidak memerlukan penampil dokumen umum, Anda mungkin dapat menggunakan solusi khusus pdf, seperti reaksi-asli-pdf   -  person Amar    schedule 11.07.2019
comment
@Amar sayangnya saya memerlukan penampil dokumen umum. Bisa berupa HTML, PDF, atau apa pun yang biasanya dibuka oleh tampilan web, mungkin berada di belakang autentikasi atau tidak. Saya tidak tahu isinya terlebih dahulu, yang saya tahu saya punya autentikasinya dan itu dokumen.   -  person Can Poyrazoğlu    schedule 11.07.2019


Jawaban (1)


Setelah mencoba berbagai hal, saya menyerah untuk menampilkan PDF secara langsung dan mengubahnya menjadi HTML. Tampaknya tidak ada cara yang dapat diandalkan untuk menampilkan PDF di browser default (melihat PDF secara langsung mungkin berfungsi pada beberapa mesin tetapi jelas tidak dapat diandalkan seperti pada perangkat/emulator saya).

person Can Poyrazoğlu    schedule 28.07.2019