前言
一般情況下,我們?cè)谟龅絧df鏈接需要在客戶端展示的時(shí)候,都會(huì)選擇使用webview來加載。
但是Android的WebView默認(rèn)沒有內(nèi)置pdf瀏覽器,iOS端是支持的
在客戶端,我們可以考慮用插件來解決這個(gè)平臺(tái)不一致的問題
那么在小程序端怎么處理呢?
現(xiàn)象
使用微信小程序提供的web-view組件訪問pdf
iOS可以正常訪問
Android會(huì)加載頁面失敗請(qǐng)重試
解決方案
1. 將pdf轉(zhuǎn)換為html
PDF轉(zhuǎn)HTML傳送門
ps:這個(gè)網(wǎng)頁可以在線幫我們完成轉(zhuǎn)換,支持的程度還是非常高的,轉(zhuǎn)換后的html可以完美還原pdf顯示與功能。缺點(diǎn)就是文件會(huì)變多,體積會(huì)增大,首次渲染時(shí)由于下載資源的原因會(huì)比較慢
2. 使用下載并打開的方式來展示
openFile(url) {
if (!(url && url.length)) {
return;
}
wx.showLoading("文件加載中...");
wx.downloadFile({
url: url,
success: (res) => {
if (res.tempFilePath) {
wx.openDocument({
filePath: res.tempFilePath,
fail: (err) => {
console.error(err);
},
complete: () => {
wx.hideLoading();
}
})
}
},
fail: (err) => {
console.error(err);
wx.hideLoading();
}
})
}
ps:這種方式雙端一致性較好,都是用插件來加載pdf的,所以幾乎不存在其他問題,而且還可以支持分享等功能,推薦這種方案統(tǒng)一雙端