最近在做移動端的開發,需要嵌入pdf進行預覽。看了很多的js組件后選擇了pdf.js;使用起來還是比較方便的,至於使用網上有很多的教程。
但在使用過程中出現了如下一個問題(我做的是IOS系統):

問題是由於服務器對http的get請求進行了數據的部分響應,導致pdf無法繼續打開。嘗試了很多方法,修改請求頭等方式都不成功;
最后,通過查詢pdf.js中的compatibility.js發現它里面對disableRange和disableStream進行了判斷。唯獨沒有對IOS系統做判斷,所以導致了以上請求問題;
借鑒github中大牛們的解決方式,成功解決了以上問題。
方式如下:
1、在compatibility.js中添加對ios系統的判斷;
var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(navigator.userAgent);
2、在判斷中添加此項
if (isSafari || isOldAndroid || isChromeWithRangeBug || isIOS) {
PDFJS.disableRange = true;
PDFJS.disableStream = true;
}
3、保存即可;
注:以上是對常用的瀏覽器和移動端系統做了判斷,如別的瀏覽器或者系統,可根據實際情況進行擴展。
