是否可以使用MonoTouch注册自定义Url方案或协议,例如myapp:123?当用户在网页,邮件或日历说明中点击此链接时,我希望我的MonoTouch应用程序启动,并选择url“参数”,在本例中为“123”。
简而言之,我想要与iPhone中Spotify应用程序相同的功能及其spotify:track:123123可以做到吗?
答案 0 :(得分:7)
是的,这就是你需要做的事情。
在信息列表中添加以下某个dict标记内的内容:
<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;
}
答案 1 :(得分:4)
是的,我已经在几个MonoTouch应用程序中完成了它。当您使用Facebook SDK登录您的应用程序时,实际上需要它。
一般情况下,请遵循与常规Objective-C应用相同的说明:http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html(请参阅“与其他应用通信”)
在AppDelegate
中,有一个HandleOpenURL
方法可以覆盖。除此之外,您的Info.plist中只有一些设置可以更改。