Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用自定义URL方案导入数据_Objective C_Ios_Cocoa Touch_Url_Url Scheme - Fatal编程技术网

Objective c 使用自定义URL方案导入数据

Objective c 使用自定义URL方案导入数据,objective-c,ios,cocoa-touch,url,url-scheme,Objective C,Ios,Cocoa Touch,Url,Url Scheme,我想用一种简单的方式让我的应用程序的用户互相发送内容。此内容将是一个单一的配方,包括名称、配料列表和一些说明。也许有一天它会包括一些图片 我被使用自定义URL方案来实现这一点的简单性所吸引,并依赖电子邮件进行通信。我的应用程序将能够撰写电子邮件,并使用此url方案嵌入链接。收到配方的人会在电子邮件中单击此链接,然后打开我的应用程序(如果已安装)。该链接将包括要添加的配方的详细信息 我不知道如何最好地构造URL,使其包含配方的详细信息。无论我采用哪种惯例来确定配方名称、成分和说明,都可能会变得模糊

我想用一种简单的方式让我的应用程序的用户互相发送内容。此内容将是一个单一的配方,包括名称、配料列表和一些说明。也许有一天它会包括一些图片

我被使用自定义URL方案来实现这一点的简单性所吸引,并依赖电子邮件进行通信。我的应用程序将能够撰写电子邮件,并使用此url方案嵌入链接。收到配方的人会在电子邮件中单击此链接,然后打开我的应用程序(如果已安装)。该链接将包括要添加的配方的详细信息

我不知道如何最好地构造URL,使其包含配方的详细信息。无论我采用哪种惯例来确定配方名称、成分和说明,都可能会变得模糊不清。例如,如果我决定构建如下内容:

`myApp://name=salsa&ing=西红柿&ing=大蒜

如果用户在配料名称中使用“&”创建了配方,我将错误地解析url


我该如何避免这种情况?是否有办法首先打包内容,或者至少包含一个校验和(以便接收应用程序可以放弃任何看起来不正确的内容)。如果没有,是否有一个最佳实践来构建一个URL来包含这样的数据?

您应该在将用户输入嵌入URL之前对其进行清理(即URL转义)。您可以使用CoreFoundation函数
CFURLCreateStringByAddingPercentEscapes()
函数进行此类转换。

您需要对URL字段中的字段进行百分比转义(例如,用
%26
替换和号等)。但在您访问之前,请注意,通常URL在长度上有一些实际限制,因此发送完整的配方(尤其是带有图片的配方,您必须对其进行base64编码或类似的编码)可能不太实际。有关转义参数的百分比的讨论,请参阅,如果您最终选择该路线。谢谢。当我解码时,如果用户在名称中输入了%26,会发生什么情况?%本身将被编码。我想我得到了。那么,我应该分别对每个成分名称进行编码,然后形成字符串吗?在接收端,我会将成分分离出来,然后对每个成分进行解码?@BenPackard是的,基本上就是这样。另外,别忘了对不同的ingerdients使用相同的名称/键不是一个好的做法,想出一些其他的方法,而不是
&ing=first-component&ing=second-component
,等等。我想知道这一点。也许是逗号分隔的成分?例如,成分=第一、第二等?除了,我想我需要选择一些将被编码的东西?