我試圖使用自定義URL協議來啓動我的Qt(4.7.3)應用程序。我已經在Windows上工作了,所以現在是Mac的時候了。與Qt的可可Mac的自定義URL協議
我已經對Info.plist進行了必要的更改,並且在瀏覽器中輸入'customrprotocol:// etc'時啓動應用程序。問題是我需要某種方式將整個URL傳遞到我的應用程序中,以便我可以處理參數(僅在應用程序的開始處)。在這個階段沒有額外的參數(argv [1])在Windows中找到,儘管用我的自定義URL協議輸入了長URL。
目前,我已經研究了兩種可能的方式來做到這一點:
1)請一個蘋果腳本,我會變成一個應用程序包,其的.plist我修改迴應customprotocol://,並且只需使用'do shell script'啓動我的真實應用程序並將URL作爲參數傳入。 http://www.macosxautomation.com/applescript/linktrigger/index.html解釋了這個過程。
不知道我是否喜歡這個選項,因爲你在這一點上基本上有2個應用程序包,我不想在兩個不同的應用程序在某人的Mac上工作。我正在嘗試將一個捆綁包放在另一個捆綁包中以查看它是否有效。
2)通過將Objective-C合併到我的項目中來處理實際的'geturl'AppleEvent,我試着按照以下示例執行該項目:URL scheme - Qt and mac。
我對這個選項的問題是,我不太清楚如何去做;我已經把所有的Objective-C代碼拋入了一個.mm文件,我用OBJECTIVE_SOURCES + = objectivecstuff.mm帶入了這個項目,並且確保將Cocoa框架也包含在一個庫中。
一切都很好,但它不會做我想做的事(我另外嘗試將URL放入鏈接示例的'handleGetURLEvent'方法中的全局變量中,以便我可以在不同的模塊中處理它)。
我認爲問題的癥結在於我不理解該.mm文件中的objective-c,並且不確定是否需要在某處實例化此EventHandler對象或其他任何東西。我試過通過http://el-tramo.be/blog/mixing-cocoa-and-qt閱讀,但這傢伙將Cocoa集成到Qt中的例子看起來更像C++,因此看起來似乎是URL scheme - Qt and mac中必需的東西,所以我不確定如何繼續使用此選項。
真的很感謝在這一點上的一些意見和建議!
謝謝您的閱讀。
Hi Rob,感謝您的快速回復。我以前發現你鏈接到的文件,但是因爲它是Carbon,所以它不適用於我的情況,所以我感謝你通知我。目前,我已經通過將第二個腳本作爲應用程序包包含到我的應用程序包中,從而獲得了第一種方法來處理10.6。當我有一些空閒時間時,我會回來嘗試使這種方法有效。謝謝。 – user845351