【发布时间】:2019-03-26 22:15:12
【问题描述】:
我可以使用from page prop 和dispatchMessageToScript 方法在override func messageReceived 中收到消息时发送消息,但我不明白如何在injectOpenWelcomeTab 方法中发送消息。谢谢
import SafariServices
class SafariExtensionHandler: SFSafariExtensionHandler {
override func messageReceived(withName messageName: String, from page: SFSafariPage, userInfo: [String : Any]?) {
// This method will be called when a content script provided by your extension calls safari.extension.dispatchMessage("message").
page.getPropertiesWithCompletionHandler { properties in
NSLog("The extension received a message (\(messageName)) from a script injected into (\(String(describing: properties?.url))) with userInfo (\(userInfo ?? [:]))")
//Вот таким образом можем дёргать методы из контроллера
SafariExtensionViewController.shared.popupChangeBackgorundColor()
}
page.dispatchMessageToScript(withName: "openWelcomePage")
}
public func injectOpenWelcomeTab(){
//Here I want send message to injected script
}
}
【问题讨论】:
-
不相关,但您在
SafariExtensionViewController.shared.popupChangeBackgorundColor()中有错字(Backg或und) -
哦,谢谢!想念它D;
标签: swift safari-app-extension