這裏參考了大牛提供的預覽插件完成自己需要實現的功能,ng2-pdf-viewer,該插件不支持ionic3的懶加載,廢話少說,直接擼代碼。
第一步,安裝 ng2-pdf-viewer
npm install ng2-pdf-viewer --save
第二步,在項目中新建頁面
ionic g page showpdf
ionic3-cli 生成的page中含有.module.ts文件,該文件用於懶加載,刪除該文件後目錄結構如圖
第三步,在app.module.ts
添加代碼,只貼出需要添加的代碼
import {PdfViewerModule} from 'ng2-pdf-viewer';
import { ShowpdfPage } from "../pages/showpdf/showpdf";
@NgModule({
declarations: [
ShowpdfPage
],
imports: [
PdfViewerModule,
],
entryComponents: [
ShowpdfPage
],
})
第四步,預覽實現方式是通過點擊來觸發模態框,讓PDF文件在模態框中進行渲染。先在需要響應點擊事件的頁面寫相關代碼。
//html文件
<ion-row>
<ion-col>
<a style="text-decoration:underline"(click)="checkUrl(item.url)">附件</a>
</ion-col>
</ion-row>
//ts文件
import {ShowpdfPage} from "../showpdf/showpdf";
@Component({
selector: 'page-xxxx',
templateUrl: 'xxxx.html'
})
export class XxxxPage {
constructor(public modalCtrl: ModalController) {}
checkUrl(url) {
console.log(url)
url= 'https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.pdf' //測試數據
let modal: Modal = this.modalCtrl.create(ShowpdfPage, {
displayData: {
pdfSource: {
url: url
}
}
});
modal.present();
}
}
第五步,響應模態框請求的頁面ShowpdfPage的界面和ts文件主要代碼。
//Showpdf.html文件
<ion-content padding>
<pdf-viewer [src]="displayData.pdfSource"
[show-all]="true"
[original-size]="false"
[zoom]=1
[render-text]="false"
[autoresize]="true"
style="display: block" >
</pdf-viewer>
</ion-content>
//Showpdf.ts文件
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
@Component({
selector: 'page-showpdf',
templateUrl: 'showpdf.html',
})
export class ShowpdfPage {
displayData: any = {};
constructor(public navParams: NavParams) {
this.displayData = this.navParams.get('displayData');
}
goBack(){
this.navCtrl.pop();
}
}
以上是實現PDF文件瀏覽的所有代碼,顯示結果很是不錯,也能遠程訪問PDF文件。