Mac应用程序在safari中与Web应用程序进行通信

时间:2014-06-08 06:21:17

标签: javascript objective-c xcode cocoa safari

有人能指出我正确的方向来开发可以与Safari网站通信的Mac应用程序吗?我不想使用网页浏览量,我希望它能够在safari中与网站进行通信。

我让网站使用应用程序网址方案(应用程序名称:// some / url /)向本机应用程序发送消息。

理想情况下,我希望我们的应用程序为我们的小内部站点提供单点登录,并触发页面JS事件以重新加载数据等。

我已经找到了相关文件。

1 个答案:

答案 0 :(得分:0)

所以这就是我最终做的事情,这是非常令人费解的,所以如果有人有更好的建议请告诉我。

我的Mac应用程序在启动时会做两件事

  • 创建目录〜/ .appwebserverfiles
  • 启动一个简单的python webserver,上面的目录为root

Mac应用程序可以将token.jsonp写入此目录,如下所示:

singleSignOnCallback({"token":"sometokenthinghere"});

使用jquery的网站会像这样进行ajax调用:

$.ajax({
    url: "http://localhost:8585/token.jsonp",
    dataType: 'jsonp'
});

当这个ajax完成时,由于它的数据类型为jsonp,它将优先于它在其中找到的任何JS。这将调用一个名为:singleSignOnCallback()

的函数

我现在可以使用它将任何js注入我们的内部webapp。

编辑: 我还应该补充一点,这适用于任何浏览器。