@@ -68,6 +68,12 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
68
68
case " loadUrl " :
69
69
self . loadUrl ( uuid: uuid, arguments: arguments!, result: result)
70
70
break
71
+ case " loadData " :
72
+ self . loadData ( uuid: uuid, arguments: arguments!, result: result)
73
+ break
74
+ case " postUrl " :
75
+ self . postUrl ( uuid: uuid, arguments: arguments!, result: result)
76
+ break
71
77
case " loadFile " :
72
78
self . loadFile ( uuid: uuid, arguments: arguments!, result: result)
73
79
break
@@ -384,10 +390,34 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
384
390
}
385
391
else {
386
392
result ( FlutterError ( code: " InAppBrowserFlutterPlugin " , message: " url is empty " , details: nil ) )
393
+ return
387
394
}
388
395
result ( true )
389
396
}
390
397
398
+ public func loadData( uuid: String , arguments: NSDictionary , result: @escaping FlutterResult ) {
399
+ let webViewController : InAppBrowserWebViewController = self . webViewControllers [ uuid] as! InAppBrowserWebViewController
400
+ let data = ( arguments [ " data " ] as? String ) !
401
+ let mimeType = ( arguments [ " mimeType " ] as? String ) !
402
+ let encoding = ( arguments [ " encoding " ] as? String ) !
403
+ let baseUrl = ( arguments [ " baseUrl " ] as? String ) !
404
+ webViewController. loadData ( data: data, mimeType: mimeType, encoding: encoding, baseUrl: baseUrl)
405
+ result ( true )
406
+ }
407
+
408
+ public func postUrl( uuid: String , arguments: NSDictionary , result: @escaping FlutterResult ) {
409
+ let webViewController : InAppBrowserWebViewController = self . webViewControllers [ uuid] as! InAppBrowserWebViewController
410
+ if let url = arguments [ " url " ] as? String {
411
+ let postData = ( arguments [ " postData " ] as? FlutterStandardTypedData ) !
412
+ let absoluteUrl = URL ( string: url) !. absoluteURL
413
+ webViewController. postUrl ( url: absoluteUrl, postData: postData. data, result: result)
414
+ }
415
+ else {
416
+ result ( FlutterError ( code: " InAppBrowserFlutterPlugin " , message: " url is empty " , details: nil ) )
417
+ return
418
+ }
419
+ }
420
+
391
421
public func loadFile( uuid: String , arguments: NSDictionary , result: @escaping FlutterResult ) {
392
422
let webViewController : InAppBrowserWebViewController = self . webViewControllers [ uuid] as! InAppBrowserWebViewController
393
423
if let url = arguments [ " url " ] as? String {
@@ -404,6 +434,7 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
404
434
}
405
435
else {
406
436
result ( FlutterError ( code: " InAppBrowserFlutterPlugin " , message: " url is empty " , details: nil ) )
437
+ return
407
438
}
408
439
result ( true )
409
440
}
@@ -458,6 +489,7 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
458
489
func open( inSystem url: URL , result: @escaping FlutterResult ) {
459
490
if !UIApplication. shared. canOpenURL ( url) {
460
491
result ( FlutterError ( code: " InAppBrowserFlutterPlugin " , message: url. absoluteString + " cannot be opened! " , details: nil ) )
492
+ return
461
493
}
462
494
else {
463
495
if #available( iOS 10 . 0 , * ) {
0 commit comments