2016-08-11 24 views
1

私のプロジェクトでは、PDFJSライブラリを使用しています。私はUIWebViewにローカルpdfをロードしています。しかし、これは多くのRAMメモリを占有し、ある時点でクラッシュします。これを避けるには、WKWebViewを使用します。iOS上でpdfを使ってhtmlファイルを読み込む方法WKWebView

UIWebview

、私はこのように使用している、私は上記のスニペットにfinalPathを印刷するとき、コンソール出力がWKWebViewloadFileURL/var/containers/Bundle/Application/DF419672-CF14-4B60-BE4F-EC0AC07C23AE/WebviewPOC.app/PDFJS/web/viewer.html?file=/var/containers/Bundle/Application/DF419672-CF14-4B60-BE4F-EC0AC07C23AE/WebviewPOC.app/swift_tutorial.pdf#page=1

ある

UIWebView *uiWebview = [[UIWebView alloc] initWithFrame:self.frame]; 
[self addSubview:uiWebview]; 
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"swift_tutorial" ofType:@"pdf"]; 
NSString *sPath = [[NSBundle mainBundle] pathForResource:@"viewer" ofType:@"html" inDirectory:@"PDFJS/web"]; 
NSString *finalPath = [NSString stringWithFormat:@"%@?file=%@#page=1",sPath,filePath]; 
self.urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:finalPath]]; 
[uiWebview loadRequest:self.urlRequest]; 

selfUIViewのサブクラスを意味します) loadHTMLStringメソッドを使用して、ローカルhtmlファイルまたはローカルpdfファイルを読み込むことができます。これは正常に動作します。しかし、両方ではありません。このhtmlファイルについては、WKWebViewにローカルpdfパスと負荷を追加する方法は?

助けてください。

答えて

0

私自身の質問に答えさせてください。

私はWKWebViewLocalライブラリを使用してローカルホストサーバーを作成しました。 これで、ホスト名でローカルファイルにアクセスできるようになります。このアプローチを使用すると、アプリケーションのメモリ使用率が大幅に最適化されています(WKWebViewのためのみ)。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"swift_tutorial" ofType:@"pdf"];  
NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"viewer" ofType:@"html" inDirectory:@"PDFJS/web"]; 
NSString *finalPath = [NSString stringWithFormat:@"http://localhost:8080%@?file=%@#page=1",htmlPath, filePath]; 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:finalPath]]; 
[self.webView loadRequest:request]; 

今、finalpathになります

http://localhost:8080/~~~~~~~/PDFJS/web/viewer.html?file=/Users/~~~~~~/swift_tutorial.pdf#page=1 
関連する問題