Browse Source

PDFView Flutter - iOS内容展示

chenyu 2 years ago
parent
commit
e1861b4c40

+ 3 - 3
ios/Runner.xcodeproj/project.pbxproj

@@ -383,7 +383,7 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = com.compdfkit.pdfviewer.flutter;
+				PRODUCT_BUNDLE_IDENTIFIER = com.compdfkit.pdfviewer;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_VERSION = 5.0;
@@ -516,7 +516,7 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = com.compdfkit.pdfviewer.flutter;
+				PRODUCT_BUNDLE_IDENTIFIER = com.compdfkit.pdfviewer;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -543,7 +543,7 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = com.compdfkit.pdfviewer.flutter;
+				PRODUCT_BUNDLE_IDENTIFIER = com.compdfkit.pdfviewer;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_VERSION = 5.0;

+ 11 - 6
ios/Runner/PDFNativeViewFactory.swift

@@ -41,6 +41,8 @@ class PDFLNativeViewFactory: NSObject, FlutterPlatformViewFactory {
 
 class FLNativeView: NSObject, FlutterPlatformView {
     private var _view: UIView
+    private var _pdfView:CPDFView
+    private var _pdfDocument:CPDFDocument
     init(
         frame: CGRect,
         viewIdentifier viewId: Int64,
@@ -51,12 +53,15 @@ class FLNativeView: NSObject, FlutterPlatformView {
         
         let document = arguments["document"];
         let configuration = arguments["configuration"] as! [String: AnyObject];
-        
-        print("test------>\(document)")
 
         _view = UIView()
+        _pdfView =  CPDFView(frame:CGRectMake(0, 0, UIScreen.main.bounds.size.width, UIScreen.main.bounds.size.height))
+        let encodeString = document?.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
+        let fileURL = URL(string:encodeString ?? "")
+        _pdfDocument = CPDFDocument(url: fileURL!)
         super.init()
         // iOS views can be created here
+        
         createNativeView(view: _view)
 
     }
@@ -64,11 +69,11 @@ class FLNativeView: NSObject, FlutterPlatformView {
     func view() -> UIView {
         return _view
     }
+    
 
     func createNativeView(view _view: UIView){
-        let document = CPDFDocument(url: document)
-        let pdfview = CPDFView(frame: _view.frame)
-        pdfview.document = document
-        _view.addSubview(pdfview)
+
+        _view.addSubview(_pdfView)
+        _pdfView.document = _pdfDocument
     }
 }

+ 1 - 1
ios/Runner/PDFSDKInfoPlugin.swift

@@ -15,7 +15,7 @@ import ComPDFKit
 
 class PDFSDKInfoPlugin{
     init(messenger:FlutterBinaryMessenger){
-        CPDFKit.setLicenseKey("0JdqLhaOqW3RHF00KSx7WFQrHSq87mNQkvDQUvL845u3vOF5PcMvlSB4iG57jTLWkiRtPqY0BjAQeNxQn4kh0mMLGx0ub7cjYi9VLLvkprVvXdEOXrVzhqwzL+62mcUWCxPt0kyxehV92tTaan2eSxrlRniY0ooKXZcCHmJkdcY=", secret: "mG0c3O3Mzeu5dkZJW3gpqotjgd+APU/4fMqIHQR4gdysTP53k9ozzKa3v/gWdszQABBoTUVSqcbVMMrC29jdv97ZJ2Nnl3B65U1myyul8F1hrp9sGpqfp0B228KI+IMTu4aGVjtYuk+Uxs/kosIBwyVLBY93oKLBB8UJg4t07605BGbaBKUlDopA0iGq1HSncUNNe38VRnoTm6ibgXyIGxXF2yqi9BrvEzNZyxg+omzooRlkHrGFqJXmCKFJ8PJhj9NGZMFeJwC3Ilgq78L0gg==")
+        CPDFKit.setLicenseKey("onNEoKiO7LoeaqbuxmqgdjgppXBMO/rw6wZFJJeJx9GM1kVzFIixr4J9NBUshFyyT3OUgE6PYL31GcaOiPidmfqwCQhMuSQlvs07DjzQLlmjY2PaBHwG4QvHneyElXU8Jp6AgBVVPL9Qb9bGfBIsdqbBwX8flHuHQQ5bEMKOPFw=", secret: "mG0c3O3Mzeu5dkZJW3gpql8+jBucojBtBSjI3YJz2gB9ms/F1zY6gZ1RBu8mNJH8idoLDJapQzJJ1HR8a/MFd/uuwijAWJZJuvsTcRTp1Sdhrp9sGpqfp0B228KI+IMTu4aGVjtYuk+Uxs/kosIBwyVLBY93oKLBB8UJg4t07605BGbaBKUlDopA0iGq1HSncUNNe38VRnoTm6ibgXyIG6+4UZPyBS1/6qLCcC9xQUtBaPhaWhE5XcAFbE1TZu+6KtsUUbXgEJiImZf6bVjCvA==")
         
         let channel = FlutterMethodChannel(name: "com.compdfkit.global", binaryMessenger: messenger)