是否可以使用MonoTouch註冊自定義Url方案或協議,如myapp:123?我希望當用戶點擊網頁,郵件或日曆說明中的鏈接時啓動我的MonoTouch應用程序,然後選擇upp url參數(本例中爲「123」)。使用自定義Url /協議啓動MonoTouch iPhone應用程序?
總之我想要Spotify應用程序在iPhone中使用它的spotify功能:track123123它可以做到嗎?
是否可以使用MonoTouch註冊自定義Url方案或協議,如myapp:123?我希望當用戶點擊網頁,郵件或日曆說明中的鏈接時啓動我的MonoTouch應用程序,然後選擇upp url參數(本例中爲「123」)。使用自定義Url /協議啓動MonoTouch iPhone應用程序?
總之我想要Spotify應用程序在iPhone中使用它的spotify功能:track123123它可以做到嗎?
是的,我已經在我的幾個MonoTouch應用程序中完成了它。當您使用Facebook SDK登錄到您的應用程序時,實際上它是必需的。
一般情況下,跟隨你會爲一個普通的Objective-C的應用程序相同的指令:http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html
在你AppDelegate
有一個HandleOpenURL
方法重寫(在「與其他應用程序通信」看)。除此之外,Info.plist中只有一些設置可以更改。
是的,這是你需要做的。
添加在info.plist中某處字典標記內的以下內容:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.companyname.com.receiver</string>
<key>CFBundleURLSchemes</key>
<array>
<string>myapp</string>
</array>
</dict>
</array>
然後在AppDelegate.cs覆蓋HandleOpenURL
方法:
public override bool HandleOpenURL (UIApplication application, NSUrl url)
{
if (url == null) {
return false;
}
var uri = new Uri(url.ToString()); // I prefer working with the Uri class.
// Your logic here
return true;
}
感謝示例代碼隊友,它會幫助其他人。我曾經在某處讀過支持它的消息,在當前版本的monotouch中已經被刪除,但它似乎工作得很完美:) –
沒錯!得到它的工作。比實際情況容易得多:)手動編輯Info.plist以獲得關於該方案的正確內容,然後在AppDelegate中實現HandleOpenUrl(),就是這樣! –