启动带有自定义Url/协议的MonoTouch iPhone应用程序?
是否可以使用MonoTouch注册自定义Url方案或协议,如myapp:123?我希望我的MonoTouch应用程序在用户单击网页、邮件或日历描述中的此链接时启动,并选择url“参数”,在本例中为“123”启动带有自定义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应用
简言之,我想要的功能与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;
}