在后台打开带有 URL 的 Safari 应用程序,而不显示 Safari UI



我想在 Safari 中打开我当前的 Cocoa 应用程序的 URL,但问题是我不希望 Safari UI 对用户可见。 即 Safari 应该在后台执行,而不显示其中发生了什么。可能吗?

如果是,请告诉方法。

您可以使用

WebView类在 Web 视图中打开 URL,如果 Safari 不是强制性要求,则不要使 Web 视图对用户可见。

您可以使用Scripting Bridge框架来最小化应用程序 safari 或使用头文件中的其他方法Safari.h打开 URL 后在后台运行它。您可以通过此链接了解有关脚本桥的更多信息。对于您的任务,请按照以下步骤操作:

使用下面的终端命令为 safari 生成一个头文件:

   sdef /Applications/Safari.app | sdp -fh --basename Safari

现在,检查您的主文件夹或执行终端cmd的当前目录以查看文件Safari.h拖动此文件并将其添加到项目中。将 ScriptingBridge.Framework 添加到您的项目中。

导入标头:

#import <ScriptingBridge/ScriptingBridge.h>

#import "Safari.h"

现在使用以下代码在打开URL后隐藏野生动物园:

SafariApplication* sfApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"];
SafariWindow* win =  [[sfApp windows]objectAtIndex:0];
[win setVisible:FALSE];

最新更新