7

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

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

4

2 回答 2

7

是的,这就是您需要做的。

在 dict 标签中的某处添加 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;
}
于 2012-08-30T13:30:21.120 回答
4

是的,我已经在我的几个 MonoTouch 应用程序中做到了。当您使用 Facebook SDK 登录您的应用程序时,它实际上是必需的。

一般来说,遵循与常规 Objective-C 应用程序相同的说明:http: //developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html (查看“通信与其他应用程序”)

在你AppDelegate有一种HandleOpenURL方法可以覆盖。除此之外,您的 Info.plist 中只有一些设置需要更改。

于 2012-08-30T12:18:59.907 回答