Ich benutzte Beobachter in Viewcontrollerwie stringByEvaluatingJavaScript in AppDelegate
Ich habe ein iOS webview in swift3 und müssen Js Funktion von AppDelegate nennen. Der Grund warum ist, weil ich Push-Benachrichtigungen verwende, und wenn der Benutzer auf Benachrichtigungen klicke, muss ich die Informationen von swift3 an JS übergeben. Diese
ist der Kopf meines ZhWebViewController
class ZhWebViewController: UIViewController, UIWebViewDelegate { func passNotificationToWebView(userInfo: AnyObject){ let jsonData = try! JSONSerialization.data(withJSONObject: userInfo, options:
JSONSerialization.WritingOptions.prettyPrinted) let jsonString = NSString(data: jsonData, encoding:
String.Encoding.utf8.rawValue)! as String self.webView.stringByEvaluatingJavaScript(from: "triggerNotificationClick(\ (jsonString))") } }
Dies ist, wie ich erkläre meine UIWebView
@IBOutlet weak var webView: UIWebView!
Dies ist, wie ich JS-Funktionen aufrufen, auf diese Weise funktioniert !!!
self.webView.stringByEvaluatingJavaScript(from: "someFunctionJS(\(jsonString))")
Dies ist Kopf meines AppDelegate
@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? }
Dies ist, wo ich Benachrichtigung erhalten und hier i JS-Funktion aufrufen wollen, versuche ich eine Funktion in ZHWebView aufrufen und dort versuche, an JS zu senden, aber ich bekomme einen fatalen Fehler.
@available(iOS 10, *) extension AppDelegate : UNUserNotificationCenterDelegate{ func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) { let userInfo = response.notification.request.content.userInfo ZhWebViewController().passNotificationToWebView(userInfo: userInfo as AnyObject) completionHandler() } }
Verwenden Sie ein 'UIWebView' oder ein' WKWebView'? – thm
Ich benutze UIWebView, ich bearbeite meinen Beitrag, um die Dinge klar zu machen, bitte helft mir! – Lucas
Was für ein fataler Fehler ist das? Bitte zeigen Sie den Code, der den Fehler auslöst, und Informationen über den Fehler. – thm