Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动带有自定义Url/协议的MonoTouch iPhone应用程序?_Iphone_Xamarin.ios - Fatal编程技术网

启动带有自定义Url/协议的MonoTouch iPhone应用程序?

启动带有自定义Url/协议的MonoTouch iPhone应用程序?,iphone,xamarin.ios,Iphone,Xamarin.ios,是否可以使用MonoTouch注册自定义Url方案或协议,如myapp:123?我希望我的MonoTouch应用程序在用户单击网页、邮件或日历描述中的此链接时启动,并选择url“参数”,在本例中为“123” 简言之,我想要的功能与iPhone中的Spotify应用程序的功能相同,Spotify:track:123123可以做到吗?是的,我已经在几个MonoTouch应用程序中做到了。当你使用Facebook SDK登录你的应用程序时,它实际上是必需的 一般来说,遵循常规Objective-C应用

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


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

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

一般来说,遵循常规Objective-C应用程序的相同说明:(查看“与其他应用程序通信”)


AppDelegate
中,有一个
HandleOpenURL
方法要重写。除此之外,您的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>

是的!让它工作起来。比我想象的要简单:)手动编辑Info.plist以获取关于方案的正确信息,然后在AppDelegate中实现handleAppEnurl(),就是这样!感谢您的示例代码助手,它将帮助其他人。我曾在某个地方读到,当前版本的monotouch中删除了对此的支持,但它似乎工作得非常完美:)
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;
}