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

Joh*_*rth 7 iphone xamarin.ios

是否可以使用MonoTouch注册自定义Url方案或协议,如myapp:123?我希望当用户在网页,邮件或日历描述中单击此链接时启动我的MonoTouch应用程序,并选择upp url"parameters",在本例中为"123".

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

Can*_*ide 7

是的,这就是你需要做的.

在Info.Plist中添加以下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>
Run Code Online (Sandbox Code Playgroud)

然后在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;
}
Run Code Online (Sandbox Code Playgroud)


jon*_*ers 4

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

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

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