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

ope*_*rog 72 iphone ipad ios xcode4

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

NSString *stringURL = @"twitterriffic://";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Run Code Online (Sandbox Code Playgroud)

Xcode 4 Info.plist编辑器

所有这些属性是什么?为什么是图像?我必须在这里重复应用标识符吗?如果我希望任何人都可以调用此URL来打开我的应用,那么选择什么角色?这些额外的url类型属性是什么?

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

Mik*_* S. 97

编辑AppName-Info.plist文件

  • 打开左侧的"支持文件"(文件夹),然后单击"YourAppName-Info.plist"
  • 选择像"Bundle creator OS Type Code"这样的行并将鼠标放在行上,然后单击(+)符号
  • 这会创建一个新行并输入"URL类型"
  • 单击左边的arror并查看Item 0,然后将项目0中的值重命名为"URL Schemes",如图所示
  • 然后编辑项目0中的字段并输入您的原型协议; 我输入了"goomzee",如图所示

现在,如果我在我的模拟器上安装此应用程序,并打开Safari并在地址栏中输入"goomzee://",它将启动我的应用程序.

  • <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> (6认同)
  • 在.plist文件中,相关代码为:`<key> CFBundleURLTypes </ key> <array> <dict> <key> CFBundleURLSchemes </ key> <array> <string> goomzee </ string> </ array> </dict> </ array>` (4认同)

Mik*_*ill 26

是的,这个东西不是直截了当的吗?

我已经概述了在此处注册自定义URL所需的步骤: 自定义URL

但是,基本上它的关键是在.plist文件中设置"URL类型"值.这是XCode 5中的样子:

网址类型

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

邮件应用

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

唯一的问题是我还没有弄清楚如何测试用户是否安装了可以识别特定前缀的iPad应用程序.

如果他们没有,并且他们在iPad上点击其中一个MKB://链接,他们将收到一条丑陋的错误消息:

不


Rob*_*ill 17

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

其他属性(图标等)没有很好的文档记录,但似乎只适用于Mac OS X,可能会在Finder的"获取信息"对话框中使用,以显示特定应用程序可以打开的URL类型.例如,请查看" 启动服务编程指南".