如何使用Xcode 4注册自定义应用程序打开URL方案?


74

Xcode4要求大量的参数只是为了使这个简单的事情成为可能:

NSString *stringURL = @"twitterriffic://";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];

Xcode 4 Info.plist编辑器

这些属性有什么用?为什么要有图像?我必须在这里重复应用程序标识符吗?如果我希望任何人都可以调用此URL来打开我的应用,该选择哪个角色?这些“其他url类型”属性有什么用?

我没有找到与Xcode4相关的教程,如何使用Xcode 4注册这样的URL方案。


如果您对“其他网址类型属性”用法有想法?
user454083

3
:我在后解释它,也从自定义URL提供的代码要额外参数2cupsoftech.wordpress.com/2013/01/08/...
2cupsOfTech

Answers:


99

编辑您的AppName-Info.plist文件

  • 打开左侧的“支持文件”(文件夹),然后单击“ YourAppName-Info.plist”
  • 选择一行,例如“捆绑创建者OS类型代码”,然后将鼠标悬停在该行上,然后单击(+)符号
  • 这将创建一个新行,并输入“ URL types”
  • 单击左侧的arror,然后看到Item 0,然后将Item 0中的值重命名为“ URL Schemes”,如图所示
  • 然后在第0项中编辑该字段,并输入您的协议;我输入了“ goomzee”,如图所示

现在,如果我在模拟器上安装了该应用程序,然后打开Safari并在地址栏中键入“ goomzee://”,它将启动我的应用程序。


4
在.plist文件中,相关代码为:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>goomzee</string> </array> </dict> </array>
Noach Magedman

6
<key> CFBundleURLTypes </ key> <array> <dict> <key> CFBundleURLName </ key> <string> com.iphonebasic.testdemo </ string> <key> CFBundleURLSchemes </ key> <array> <string> com- iphonebasic-testdemo </ string> </ array> </ dict> </ array>
9to5ios

@MikeS。我尝试了您提供的步骤,当我从Info.plist移到其他选项卡时,它消失了。
尼斯

29

是的,这不是很简单吗?

我在这里概述了注册自定义URL所需的步骤: 自定义URL

但是,基本上,关键是在.plist文件中设置“ URL Types”值。这是XCode 5中的样子:

网址类型

在此示例中,我已经注册了MKB前缀,因此,现在,我可以在网页和电子邮件(如果我在iPad Mail应用程序中阅读电子邮件)的超链接中使用这种新类型的URL:

邮件应用

如果用户点击这些链接之一,我的iPad应用将启动,我可以访问完整的URL字符串,以从URL中提取其他参数(例如“ DocumentNumber = 100”)

唯一的问题是,我尚未弄清楚如何测试用户是否安装了可以识别特定前缀的iPad应用。

如果还没有,那么他们在iPad上点击这些MKB://链接之一,就会收到一条难看的错误消息:

不


1
哇,您博客上的精彩解释。这为我节省了大约2个小时。谢谢!!
Wirsing

问题是,之后MKB://一定有任何东西。
巴特洛梅耶Semańczyk

17

您可以通过编辑应用程序的info.plist文件继续注册自定义URL(如上一个问题所示)。Xcode 4中的新编辑器应该可以很方便地使添加条目变得容易-它所做的只是对info.plist进行了与手动更改相同的更改。如果要使用新的编辑器,则只需填写“标识符”和“ URL方案”框。您不需要图像,图标或其他URL属性。

其他属性(图标等)没有很好的文档说明,但似乎仅适用于Mac OS X,并且可能在Finder的“获取信息”对话框中使用,以显示特定应用程序可以打开的URL类型。例如,看一下《启动服务编程指南》


0

您在该编辑器中所做的更改也反映在项目的信息plist文件中。它采用ProjectName -Info.plist的形式。希望有帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.