使用自定义URL /协议启动MonoTouch iPhone应用程序?

时间:2012-08-30 09:58:21

标签: iphone xamarin.ios

是否可以使用MonoTouch注册自定义Url方案或协议,例如myapp:123?当用户在网页,邮件或日历说明中点击此链接时,我希望我的MonoTouch应用程序启动,并选择url“参数”,在本例中为“123”。

简而言之,我想要与iPhone中Spotify应用程序相同的功能及其spotify:track:123123可以做到吗?

2 个答案:

答案 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中只有一些设置可以更改。