如何解決
我的ViewControllerstringByEvaluatingJavaScript在AppDelegate中
使用觀察者我有一個Swift3的iOS的WebView,需要從AppDelegate中調用js函數。 之所以是因爲我使用推送通知,並且當用戶點擊通知時,我需要將swift3的信息傳遞給JS。
這是我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))") } }
這是我聲明我的UIWebView
@IBOutlet weak var webView: UIWebView!
我這是怎麼調用JS功能,這樣的作品!
self.webView.stringByEvaluatingJavaScript(from: "someFunctionJS(\(jsonString))")
這是我的AppDelegate的頭
@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? }
這是我收到通知,並在這裏,我想打電話給JS功能,我嘗試調用一個函數在ZHWebView有嘗試發送給JS,但我得到致命的錯誤。
@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() } }
您使用的是「UIWebView」還是「WKWebView」? – thm
我正在使用UIWebView,我編輯我的帖子來弄清事情,請幫助我! – Lucas
是什麼樣的致命錯誤?請顯示觸發錯誤的代碼和有關錯誤的信息。 – thm