項目中碰到是一個需求是查看列表詳情,詳情的內(nèi)容是PDF文件。初步實現(xiàn)思路是點擊詳情按鈕打開內(nèi)嵌web-view,在web-view內(nèi)加載PDF文件。實現(xiàn)起來很簡單,后續(xù)才發(fā)現(xiàn)安卓與IOS有差異。IOS可直接打開實現(xiàn)效果。安卓只能下載PDF文件就沒有后續(xù)了。
- 實現(xiàn)思路
先判斷當(dāng)前用戶是哪種操作系統(tǒng),根據(jù)兩種系統(tǒng)分別處理。IOS不做處理,安卓機型先下載需要查看的PDF文件,然后本地打開。 - 具體代碼
<web-view wx:if="{{ios}}" src="{{url}}"></web-view>
data: {
//需要顯示的PDF鏈接
url:"",
//當(dāng)前機型
ios:true
},
onLoad: function (options) {
this.checkPhone(detail.show_url)
},
checkPhone(url){
let _this = this;
wx.getSystemInfo({
success: function(res) {
//判斷當(dāng)前機型
if (res.system.indexOf('iOS')!=-1){
_this.setData({
url: url
})
}else{
_this.setData({
ios:false
})
wx.downloadFile({
url: url,
success(res){
let path = res.tempFilePath;
wx.openDocument({
filePath:path,
fileType:"pdf",
success(){
wx.navigateBack({
delta:1
})
}
})
}
})
}
},
})
}
注意??:
1. 判斷當(dāng)前機型的時候,要注意iOS(注意大小寫,我也是打印res才發(fā)現(xiàn)的)。
2. wx.openDocument() 需要指定打開文件類型(fileType:"pdf"),不然沒有反應(yīng)打不開??。
3. 打開成功后需要后退一個頁面,不然關(guān)閉PDF后是會漏出空白頁,用戶體驗比較差。