本文目錄一覽:
- 1、android pdf如何實現發大後下一頁
- 2、pdf.js可以用到移動端嗎
- 3、pdf.js 在安卓手機uc瀏覽器不支持在線預覽
- 4、vue-pdf 預覽亂碼問題
- 5、自定義微信分享鏈接(使用JS-SDK) + 實現預覽pdf
android pdf如何實現發大後下一頁
是接入第三方的jar包(如android-pdfview、AndroidPdfViewer
、PdfViewPager、MuPdf等)這裏面接入到項目里增加APP體積最小的就屬android-pdfview了,但是也是增加了4m左右,這還是我只加了arm和arm-v7a,但是這個jar包有個致命的大坑,就是不能播放帶有超鏈接的pdf文件,會報類型轉換錯誤的crash,這個是我項目快要上線才發現的問題,而且作者也停更了,網上沒有好的解決方法,只能把源碼導入到項目里在報錯的位置作相應的處理才能解決,而且可能會導致pdf顯示不出來。別的jar包都因為實在是太大了,考慮到APP的體積都放棄了。
2. 是我偶爾發現的官方的simple PdfRendererBasic這個主要是把pdf文件讀出來把每一頁ppt轉成圖片顯示出來,不過這個每次只能顯示一張,雖然可以做一個下一頁按鈕,但是實在是跟我的需求不符就也放棄了。
3.
接入pdf.js。這是個開源的把pdf轉換成圖片的工具,在網上有很多資料,但是大部分都是服務器解決的,官網上的例子也大部分都是用服務器解決的例子,android端可能用到的人很少,也沒有詳細的教程,其實很簡單,主要是把pdf.js和pdf.worker.js這兩個js文件考到你項目里的assets文件裏面,然後在你的項目里直接用webview調用就好了。
詳細
pdf.js可以用到移動端嗎
可以。但消耗內存太大,h5頁面需要植入到app裏面去,ios的打開沒有問題,安卓打開會閃退,有沒有其他適用於移動端的h5預覽pdf的js插件
pdf.js 在安卓手機uc瀏覽器不支持在線預覽
①塞班版UC瀏覽器:目前塞班平台是暫時不支持JavaScrip的;
②安卓版UC瀏覽器:是支持javascript的,此功能是默認開啟的,沒有開關。
vue-pdf 預覽亂碼問題
我遇到過以下兩種情況的亂碼,都是h5(我的項目是嵌入到釘釘內部的,具體網頁版沒有測試過):
1、蘋果手機正常顯示;安卓手機只能顯示部分漢字,字母數字都正常。
2、部分pdf文件蘋果手機、安卓手機都不顯示漢字,亂碼。
(備註:這裡提一下我的vue-pdf版本是4.1)
1、找到安裝的依賴文件夾vue-pdf,把node_modules vue-pdf src pdfjsWrapper.js替換為以下文件內容:
1、引入CMapReaderFactory.js(這個文件也在node_modules vue-pdf src下) 備註:不用關注,只是提一下
2、在執行 pdf.createLoadingTask 方法的時候加入 CMapReaderFactory ,(我的vue-pdf基本用法里有寫) pdf的基本用法,點擊這裡
自定義微信分享鏈接(使用JS-SDK) + 實現預覽pdf
可參考:微信JS-SDK說明文檔
此時可能出現白名單錯誤(忘截圖了),需要在微信公眾號中設置錯誤中的IP
注意:access_token和ticket都需要緩存
4. 獲取簽名 signature
將以上內容以鍵值對形式拼接,類似如下
本地引入sha1算法(需網上查找)
將上述拼接的字符串以參數的形式傳遞到sha1中得到 signature
signature = sha1(拼接完的字符串)
驗證 signature 是否正確
將appId,nonceStr,timestamp和signature返回給前端
官網上是這樣描述的:
這時候調用 updateAppMessageShareData , updateTimelineShareData 的時候就可以生效了,具體原理不清楚。。
注意:imgUrl配置有嚴格的要求
尺寸120 x 120,大小不超過10K,不支持GIF格式。必須採用https協議(最好寫完整url),不支持base64。由於我使用的是vue,在webpack打包時圖片小於10k的是會自動打包成base64導致無法正常顯示圖片,因此在webpack.base.config.js中修改默認配置
由於在網頁中直接查看pdf的路徑是無法在微信中查看(安卓)和分享(ios),因此使用pdf插件進行優化 — pdf.js 。其原理是繪製成canvas,最終在真機上放大時可能出現模糊的問題。
創建之後控制台會報錯出現跨域問題,因為pdf.js不支持跨域訪問。此時可以將錯誤跨域信息在上一步你引入的文件中查找,然後將其判斷語句注釋掉即可解決這個問題。最後會發現pdf出現在這個容器中(忘截圖了),也實現了微信中預覽和分享的功能。
原創文章,作者:MCNH,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140005.html