在不显示Safari UI的情况下,在后台使用URL打开Safari应用程序

Var*_*run 1 safari macos cocoa

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

如果是,请告诉方法。

Neh*_*eha 5

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

要么

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

使用以下终端命令为野生动物园生成头文件:

   sdef /Applications/Safari.app | sdp -fh --basename Safari
Run Code Online (Sandbox Code Playgroud)

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

导入头:

#import <ScriptingBridge/ScriptingBridge.h>

#import "Safari.h"

现在,在打开网址后,使用下面的代码隐藏野生动物园:

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

SafariWindow* win =  [[sfApp windows]objectAtIndex:0];
[win setVisible:FALSE];
Run Code Online (Sandbox Code Playgroud)