@@ -2,7 +2,7 @@ import WebKit
22
33private let logger = USLogger ( #fileID)
44
5- class ViewController : UIViewController , WKNavigationDelegate , WKScriptMessageHandler , UIDocumentPickerDelegate {
5+ class ViewController : UIViewController , WKNavigationDelegate , WKScriptMessageHandlerWithReply , UIDocumentPickerDelegate {
66
77 @IBOutlet var webView : WKWebView !
88
@@ -13,7 +13,7 @@ class ViewController: UIViewController, WKNavigationDelegate, WKScriptMessageHan
1313 // https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/2875766-seturlschemehandler
1414 configuration. setURLSchemeHandler ( USchemeHandler ( ) , forURLScheme: AppWebViewUrlScheme)
1515 // https://developer.apple.com/documentation/webkit/wkusercontentcontroller
16- configuration. userContentController. add ( self , name: " controller " )
16+ configuration. userContentController. addScriptMessageHandler ( self , contentWorld : . page , name: " controller " )
1717 // https://developer.apple.com/documentation/webkit/wkwebview
1818 self . webView = WKWebView ( frame: . zero, configuration: configuration)
1919 // https://developer.apple.com/documentation/webkit/wknavigationdelegate
@@ -79,10 +79,13 @@ class ViewController: UIViewController, WKNavigationDelegate, WKScriptMessageHan
7979 decisionHandler ( . allow)
8080 }
8181
82- func userContentController( _ userContentController: WKUserContentController , didReceive message: WKScriptMessage ) {
82+ func userContentController( _ userContentController: WKUserContentController , didReceive message: WKScriptMessage ) async -> (
83+ Any ? ,
84+ String ?
85+ ) {
8386 guard let name = message. body as? String else {
8487 logger? . error ( " \( #function, privacy: . public) - Userscripts iOS received a message without a name " )
85- return
88+ return ( nil , " bad message body " )
8689 }
8790 if name == " CHANGE_DIRECTORY " {
8891 // https://developer.apple.com/documentation/uikit/view_controllers/providing_access_to_directories
@@ -101,6 +104,7 @@ class ViewController: UIViewController, WKNavigationDelegate, WKScriptMessageHan
101104 UIApplication . shared. open ( url)
102105 }
103106 }
107+ return ( nil , nil )
104108 }
105109
106110 func documentPicker( _ controller: UIDocumentPickerViewController , didPickDocumentAt url: URL ) {
0 commit comments