【发布时间】:2023-03-06 16:26:01
【问题描述】:
我希望我的应用用户可以通过一种简单的方式相互发送内容。此内容将是一个带有名称、成分列表和一些说明的食谱。也许有一天它会包含一些图片。
我被使用自定义 URL 方案来实现这一点的简单性所吸引,并依赖电子邮件进行通信。我的应用程序将能够撰写电子邮件,并使用此 url 方案嵌入链接。收到食谱的人会单击电子邮件中的此链接,然后它会打开我的应用程序(如果已安装)。该链接将包含要添加的配方的详细信息。
我不确定如何最好地构建 URL,以便它包含配方的详细信息。无论我采用哪种约定来识别配方名称、成分和说明,都可能是易碎的。例如,如果我决定构建类似的东西:
`myApp://name=salsa&ing=tomatoes&ing=garlic...
如果用户在成分名称中使用“&”创建了食谱,我将错误地解析 url。
我该如何避免这种情况?有没有办法先打包内容,或者至少包含一个校验和(所以接收应用程序可以放弃任何看起来不正确的东西)。如果没有,是否有构建 URL 以包含此类数据的最佳实践?
【问题讨论】:
-
您需要对 URL 字段中的字段进行百分比转义(例如,将与符号替换为
%26等)。但在你去那里之前,请注意通常 URL 对长度有一些实际限制,因此发送完整的食谱(尤其是带有图片,你必须对其进行 base64 编码或类似的东西)可能不切实际。 -
如果你最终走这条路,请参阅stackoverflow.com/questions/705448/…,了解有关转义参数百分比的讨论。
-
谢谢。当我解码并且用户在名称中输入了 %26 时会发生什么?
-
% 本身将获得百分比编码。
标签: objective-c ios cocoa-touch url url-scheme