gpt4 book ai didi

swift - Safari 应用程序扩展如何捕获 beforeNavigate 事件?

转载 作者:搜寻专家 更新时间:2023-10-31 21:46:50 24 4
gpt4 key购买 nike

使用旧的 safari 扩展,我们有全局 javascript 来处理 beforeNavigate 事件,但使用新的 safari app extension概念 有什么方法可以在应用程序代码中捕获相同的事件吗?

我试过overiding beginRequest 但不确定如何在此处捕获 url 信息

override func beginRequest(with context: NSExtensionContext) {
//TODO:
}

最佳答案

您可以在 safari 应用程序扩展中使用脚本文件,该脚本会在 safari 页面加载之前自动注入(inject)。

脚本从 safari 浏览器获取导航事件,然后脚本将事件传递给应用程序扩展,扩展通过以下方法处理此事件:

override func messageReceived(withName messageName: String, from page: SFSafariPage, userInfo: [String : AnyObject]!) {
page.getPropertiesWithCompletionHandler { properties in
NSLog("The extension received a message (\(messageName)) from a script injected into (\(properties?.url)) with userInfo (\(userInfo))")
}
}

注意:该事件有你想要的 url 信息。

关于swift - Safari 应用程序扩展如何捕获 beforeNavigate 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44916917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com