Pau*_*ite 20 xcode nslog swift safari-app-extension
我正在关注Apple的创建Safari App Extension的指南.简而言之,我:
扩展程序的工具栏按钮出现在Safari中.Apple的指南说当我点击工具栏按钮时我应该在控制台中看到NSLog消息,但我什么都没看到.
我已经编辑了SafariExtensionHandler.swift来向扩展注入的脚本发送消息:
override func toolbarItemClicked(in window: SFSafariWindow) {
// This method will be called when your toolbar item is clicked.
NSLog("The extension's toolbar item was clicked")
window.getActiveTab(completionHandler: { (activeTab) in
activeTab?.getActivePage(completionHandler: { (activePage) in
activePage?.dispatchMessageToScript(withName: "toolbarItemClicked", userInfo: nil)
})
})
}
Run Code Online (Sandbox Code Playgroud)
我编辑了注入的脚本(script.js)来警告该消息:
safari.self.addEventListener("message", function (event) {
alert("We got a message from the extension! - " + event.name + ": " + event.message);
});
Run Code Online (Sandbox Code Playgroud)
单击工具栏按钮时出现警报(当我在webkit.org上的页面上时,因为我已经离开了默认的SFSafariWebsiteAccess设置),因此扩展程序正在工作并注册了点击.但我没有在Xcode的控制台或Console应用程序中看到NSLog.
我是一个真正的Xcode新手,所以我确定我错过了一些明显的东西 - 但为什么NSLog消息不出现在控制台中?
(我没有以管理员身份运行,以防万一 - 尽管我在第一次运行Xcode时被要求输入管理员帐户详细信息.我注意到在Console应用程序中,当我选择时system.log,我只看到一条消息"无法读取文件".这可能与不以管理员身份运行有关.)
Aar*_*ary 19
切换到您的扩展的方案(方案就在Run和Stop按钮的右侧),然后点击Run.
弹出窗口会要求您选择要运行的应用程序:选择Safari.
应该打开一个新的Safari实例,您将开始在Xcode控制台中看到日志输出.
但是,如果您尚未签署您的应用和扩展程序,Safari将拒绝您的扩展程序,控制台将显示如下消息
2017-04-12 13:00:44.799843-0400 Safari[37188:2787364] [Extensions]
Computing the code signing dictionary failed for extension with
identifier com.your.app.extension
2017-04-12 13:00:44.799865-0400 Safari[37188:2787364] [Extensions]
Disabling and blocking extension with identifier:
com.your.app.extension
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您只需要在Safari的"开发人员"菜单中重新选中"允许未签名的扩展",并在"首选项"窗格中启用该扩展,之后您应该好好去.
| 归档时间: |
|
| 查看次数: |
1841 次 |
| 最近记录: |