我想在Safari中从我当前的Cocoa应用程序打开一个URL,但问题是我不希望Safari UI对用户可见。即Safari应该在后台执行而不显示其中发生的事情。 有可能吗?
如果是,请告诉方法。
答案 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];