是否可以使用 MonoTouch 注册自定义 Url 方案或协议,例如 myapp:123?我希望我的 MonoTouch 应用程序在用户单击网页、邮件或日历描述中的此链接时启动,并获取 URL“参数”,在本例中为“123”。
简而言之,我想要与 iPhone 中的 Spotify 应用程序相同的功能,它的 spotify:track:123123 可以做到吗?
是否可以使用 MonoTouch 注册自定义 Url 方案或协议,例如 myapp:123?我希望我的 MonoTouch 应用程序在用户单击网页、邮件或日历描述中的此链接时启动,并获取 URL“参数”,在本例中为“123”。
简而言之,我想要与 iPhone 中的 Spotify 应用程序相同的功能,它的 spotify:track:123123 可以做到吗?
是的,这就是您需要做的。
在 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;
}
是的,我已经在我的几个 MonoTouch 应用程序中做到了。当您使用 Facebook SDK 登录您的应用程序时,它实际上是必需的。
一般来说,遵循与常规 Objective-C 应用程序相同的说明:http: //developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html (查看“通信与其他应用程序”)
在你AppDelegate
有一种HandleOpenURL
方法可以覆盖。除此之外,您的 Info.plist 中只有一些设置需要更改。