2013-01-15 33 views
0

我在TideSDK中放置了一個桌面應用程序,並且在查找通過自定義啓動URL傳遞給應用程序的參數時遇到了一些問題。從TideSDK中的自定義URL中檢索參數

應用程序啓動時調用適當的協議(稱爲aaa://),但我一直無法弄清楚如何獲取URL字符串。我讀了幾個線程,提示我可以通過Ti.API.application.getArguments()調用獲取字符串,但它返回了一些奇怪的內容(請參見下文)。

// launch application with aaa://some_args_here 
var args = Ti.API.application.getArguments(); 
// returns (StaticBoundList) [ /path/to/app, "-psn_0_721072", ] 

我不能完全驚訝,這似乎並沒有工作,因爲API文檔說getArguments方法返回的命令行參數的清單。

有關如何訪問啓動URL的任何深入分析將不勝感激!

回答

0

它不會出現有目前的「官方」的方式做到這一點,所以我想出了自己的解決方案,似乎工作得很好(儘管目前它只能用於OSX)。

通過TideSDK源搜索,我發現創建本地應用程序委託的地方。我在應用程序委託中添加了一個URL啓動處理程序,它將啓動URL存儲在新的應用程序委託成員中,並使用Ti.UI中的綁定將其連接到API。

如果有其他人對此功能感興趣,或對如何完成Windows任務有所瞭解,請與我們聯繫!

1
+0

這將返回有關SDK啓動應用程序的鏈接信息(app://協議),而不是用於通過Web瀏覽器(即Safari)觸發應用程序啓動的協議。我手動編輯應用程序的Info.plist以添加自定義網址方案 - 是否有正確的方法來添加自定義方案? – oliver

+0

啊gotcha。對困惑感到抱歉。我不認爲有一個'正確的方式'尚未添加自定義協議。你如何做這可能是唯一的方法。 – meeech

0

雖然我沒有你的問題,只是想說下面的函數適合我。

var args = Ti.API.application.getArguments();

是否有可能這是urlprotocl註冊表的問題?

我的URL協議通過此設置:MSDN

因此 「命令」 的值是

「C:\ YOUR_APP_FOLDER \ YOURAPP.exe」 「%1」

在win7和winxp上測試

, 都成功獲取參數。