2010-10-17 39 views
2

我想自定義協議處理程序掛接到我的OSX上的應用程序,這樣我可以做測試://參數自定義協議處理未通過論證的OSX

在我的plist我有以下幾點:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeRole</key> 
     <string>Viewer</string> 
     <key>CFBundleURLIconFile</key> 
     <string></string> 
     <key>CFBundleURLName</key> 
     <string>test</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>test</string> 
     </array> 
    </dict> 
</array> 

這成功啓動應用程序,但是我的參數列表始終爲空。爲什麼是這樣?

在它啓動Java \ Scala的應用蓋子的主要方法是: 對象LoadJS { DEF主(參數:數組[字符串]){

我可以在參數使用「打開時通過「命令行。嘗試從Chrome和Firefox,但無論是工作。

任何想法?

感謝

+0

小心點贊/接受答案或告訴我們更多關於你想要什麼樣的解釋? – 2011-04-18 19:52:51

回答

1

的網址並非作爲參數傳遞。相反,您的應用程序已啓動,然後收到類和ID kAEGetURL的AppleEvent。也許這篇文章,其中介紹瞭如何使用自己的協議,從目標C,可以幫助理解它是如何工作:

How do you set your Cocoa application as the default web browser?

爲了實際處理從Java/Scala的這種情況下,你需要研究一些更多,也許寫本地代碼...看看Apple's ApplicationAdapter類,它允許您處理一些基本的AppleEvents,如打開,重新打開,關於等;但不幸的是,與網址相關的事件沒有發生。在this forum上,有人報告用JNI來做。