webview加載pdf時(shí),電子簽名不顯示

問題描述:

項(xiàng)目中需要用到云合同來(lái)進(jìn)行電子簽名,合同為pdf格式,可以通過UIWebView進(jìn)行預(yù)覽。但是在測(cè)試過程中卻發(fā)現(xiàn),合同可以正常顯示,電子簽名卻不顯示。

最終的解決方案是:通過pdf.js來(lái)加載合同。

接入教程:

首先把pdf.js clone到本地:

git clone git://github.com/mozilla/pdf.js.git

pdf.js 構(gòu)建基于nodejs,因此需要安裝nodejs:

npm install -g gulp-cli
npm install

進(jìn)入pdf.js所在的文件,輸入gulp generic或$ gulp minified進(jìn)行構(gòu)建:

cd pdf.js
#generic和minified取其中一種即可。
gulp generic
gulp minified

構(gòu)建完成后將build\generic或build\ minified下的文件導(dǎo)入到xcode中。我在項(xiàng)目中用的是minified。

敲黑板啦
自定義一個(gè)繼承與UIWebView的webView,并添加如下代碼:

- (void)loadPDFFile:(NSString*)filePath;
{
    _filePath = filePath;
    
    NSString *viwerPath = [[NSBundle mainBundle] pathForResource:@"viewer" ofType:@"html" inDirectory:@"minified/web"];
    NSString *urlStr = [NSString stringWithFormat:@"%@?file=%@#page=1",viwerPath,filePath];
    urlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]];
    [self loadRequest:request];
}

在需要加載pdf的控制器中,初始化這個(gè)自定義的webView,并傳入pdf的路徑,本地路徑或外網(wǎng)路徑皆可。

開發(fā)階段到此結(jié)束。


測(cè)試階段:

剛開始,在iOS10的測(cè)試機(jī)上是沒有問題的,項(xiàng)目運(yùn)行良好,簽名也完美解決。但是在測(cè)試的過程中發(fā)現(xiàn),在iOS12的系統(tǒng)上,pdf無(wú)法打開,提示:file origin does not match viewer 錯(cuò)誤。

解決辦法:
在minified/web/pdf.viewer.js文件中注釋掉以下代碼(這是構(gòu)建完成之后的):

if(r!==t&&"blob:"!==i)throw new Error("file origin does not match viewer's")

注意:pdf.js不支持跨域,所以才會(huì)報(bào)“file origin does not match viewer”錯(cuò)誤。

至此,已經(jīng)萬(wàn)事大吉???

參考連接:
iOS開發(fā)之pdf文檔的加載與瀏覽的4種方式
iOS使用pdf.js打開PDF文件
iOS 加載PDF問題無(wú)法顯示電子章問題
pdf.js 在線瀏覽pdf組件構(gòu)建與安裝注意事項(xiàng)
Load pdf on foreign url with pdf.js

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近研究了下iOS打開PDF文件的方式,由于項(xiàng)目需要在瀏覽PDF文件時(shí)能使用HTML格式文件,調(diào)研了一下iOS中打...
    雪小影閱讀 19,506評(píng)論 24 24
  • 背景 公司項(xiàng)目中需要顯示訂單合同PDF文件。正常情況下,加載pdf文件直接通過UIWebView或者WKWebVi...
    黃二瓜閱讀 11,215評(píng)論 12 6
  • 朋友小聚 今晚,應(yīng)一個(gè)朋友的約,參加了朋友的小聚。真的,好久好久,沒有參加過朋友的聚會(huì)了,并且,是這種聊天式的聚會(huì)...
    _孤魂閱讀 510評(píng)論 1 1
  • 一直以來(lái),我都還算是比較喜歡閱讀,但真正從閱讀中獲得收益,是從去年開始的。要是算起來(lái),這兩年讀的書并沒有前些年加起...
    鏡姐夢(mèng)想領(lǐng)讀會(huì)閱讀 2,900評(píng)論 9 70
  • 最近我在減肥,準(zhǔn)確來(lái)說最近這幾年我一直在減肥,反反復(fù)復(fù)的減肥。我想大多減肥的人都會(huì)這這個(gè)過程中遇到暴食這個(gè)...
    董小力閱讀 407評(píng)論 0 0

友情鏈接更多精彩內(nèi)容