繁体   English   中英

Safari app扩展如何捕获之前的Navigate事件?

[英]Safari app extension how to capture beforeNavigate event?

随着较早的safari扩展,我们有全球javascript来处理beforeNavigate事件,但新的safari应用程序扩展概念有没有办法在应用程序代码中捕获相同的事件?

我试过overiding beginRequest但不知道如何在这里捕获url信息

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

您可以在safari app扩展中使用脚本文件,该脚本会在Safari中的页面加载之前自动注入。

该脚本从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))")
    }
}

注意:该事件包含您想要的网址信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM