是否可以使用MonoTouch注册自定义Url方案或协议,如myapp:123?我希望当用户点击网页,邮件或日历说明中的链接时启动我的MonoTouch应用程序,然后选择upp url参数(本例中为“123”)。使用自定义Url /协议启动MonoTouch iPhone应用程序?
总之我想要Spotify应用程序在iPhone中使用它的spotify功能:track123123它可以做到吗?
是否可以使用MonoTouch注册自定义Url方案或协议,如myapp:123?我希望当用户点击网页,邮件或日历说明中的链接时启动我的MonoTouch应用程序,然后选择upp url参数(本例中为“123”)。使用自定义Url /协议启动MonoTouch iPhone应用程序?
总之我想要Spotify应用程序在iPhone中使用它的spotify功能:track123123它可以做到吗?
是的,我已经在我的几个MonoTouch应用程序中完成了它。当您使用Facebook SDK登录到您的应用程序时,实际上它是必需的。
一般情况下,跟随你会为一个普通的Objective-C的应用程序相同的指令:http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html
在你AppDelegate
有一个HandleOpenURL
方法重写(在“与其他应用程序通信”看)。除此之外,Info.plist中只有一些设置可以更改。
是的,这是你需要做的。
添加在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中已经被删除,但它似乎工作得很完美:) –
没错!得到它的工作。比实际情况容易得多:)手动编辑Info.plist以获得关于该方案的正确内容,然后在AppDelegate中实现HandleOpenUrl(),就是这样! –