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

时间:2014-02-12 07:26:57

标签: macos cocoa safari

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

如果是,请告诉方法。

1 个答案:

答案 0 :(得分:4)

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

OR

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

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

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

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

导入标题:

#import <ScriptingBridge/ScriptingBridge.h>

#import "Safari.h"

现在使用以下代码在打开URL后隐藏safari:

SafariApplication* sfApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"];

SafariWindow* win =  [[sfApp windows]objectAtIndex:0];
[win setVisible:FALSE];