iPhone二维码自定义

时间:2015-02-04 09:25:37

标签: ios iphone qr-code

我想使用自定义QR,我有一个网址,如果我在浏览器中传递该网址,他们在浏览器中显示QR,如果我在我们的代码中使用此网址,则返回null,这是我想要使用的网址在我们的代码中:

http://api.qrcode.unitag.fr/api?t_pwd=degraded&setting= { “眼睛”:{ “EYE_TYPE”: “LLLeft”, “COLOR_EHD”: “8a9935”, “COLOR_IHD”: “8a9935”, “COLOR_EBG”: “71801f”, “COLOR_IBG”: “71801f”}, “BODY_TYPE”:2 “LAYOUT”:{ “COLORBG”: “FFFFFF”, “GRADIENT_TYPE”: “HORI”, “COLOR1”: “afc928”, “COLOR2”: “d7eb67”,“FORCE_SHADOW “:” L”, “COLOR_SHADOW”: “b6b8a7”}}&安培;数据= { “DATA”:{ “MESSAGE”: “你好”, “PHONE”: “0505050505”}, “TYPE”: “smsto”}

这是我的编码url

的代码
NSString *unescaped = @"http://api.qrcode.unitag.fr/api?t_pwd=degraded&setting={%22EYES%22:{%22EYE_TYPE%22:%22LLLeft%22,%22COLOR_EHD%22:%228a9935%22,%22COLOR_IHD%22:%228a9935%22,%22COLOR_EBG%22:%2271801f%22,%22COLOR_IBG%22:%2271801f%22},%22BODY_TYPE%22:2,%22LAYOUT%22:{%22COLORBG%22:%22ffffff%22,%22GRADIENT_TYPE%22:%22HORI%22,%22COLOR1%22:%22afc928%22,%22COLOR2%22:%22d7eb67%22,%22FORCE_SHADOW%22:%22L%22,%22COLOR_SHADOW%22:%22b6b8a7%22}}&data={%22DATA%22:{%22MESSAGE%22:%22Hello%22,%22PHONE%22:%220505050505%22},%22TYPE%22:%22smsto%22}";


 NSString *escapedString = [unescaped stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]];
 NSLog(@"escapedString: %@", escapedString);

 NSURL *url = [NSURL URLWithString:escapedString];
 [img_barcode setImageWithURL:url placeholderImage:nil];

我使用上面的代码,但我没有得到图像,请告诉我这个过程如何成功获取图像。

2 个答案:

答案 0 :(得分:0)

您的代码中的网址已被转义。通过再次逃避它,你就会摧毁它。

从正确的URL转义字符串开始,不要对其进行任何进一步处理:

NSString *escaped = @"http://api.qrcode.unitag.fr/api?t_pwd=degraded&setting={%22EYES%22{%22EYE_TYPE%22:%22LLLeft%22,%22COLOR_EHD%22:%228a9935%22,%22COLOR_IHD%22:%228a9935%22,%22COLOR_EBG%22:%2271801f%22,%22COLOR_IBG%22:%2271801f%22},%22BODY_TYPE%22:2,%22LAYOUT%22{%22COLORBG%22:%22ffffff%22,%22GRADIENT_TYPE%22:%22HORI%22,%22COLOR1%22:%22afc928%22,%22COLOR2%22:%22d7eb67%22,%22FORCE_SHADOW%22:%22L%22,%22COLOR_SHADOW%22:%22b6b8a7%22}}&data={%22DATA%22{%22MESSAGE%22:%22Hello%22,%22PHONE%22:%220505050505%22},%22TYPE%22:%22smsto%22}";

或者从基本网址和参数开始,然后网址转义每个参数值并将其合并到完整的网址中:

  • 基本网址:http://api.qrcode.unitag.fr/api
  • t_pwd :degraded
  • 设置{"EYES":{"EYE_TYPE":"LLLeft","COLOR_EHD":"8a9935","COLOR_IHD":"8a9935","COLOR_EBG":"71801f","COLOR_IBG":"71801f"},"BODY_TYPE":2,"LAYOUT":{"COLORBG":"ffffff","GRADIENT_TYPE":"HORI","COLOR1":"afc928","COLOR2":"d7eb67","FORCE_SHADOW":"L","COLOR_SHADOW":"b6b8a7"}}
  • 数据{"DATA":{"MESSAGE":"Hello","PHONE":"0505050505"},"TYPE":"smsto"}

因此,最简单的解决方案可能是删除运行URL编码的代码行。

答案 1 :(得分:0)

最后我感谢每一个人解决了问题。

这是我的网址:

http://api.qrcode.unitag.fr/api?t_pwd=degraded&setting= { “眼睛”:{ “EYE_TYPE”: “LLLeft”, “COLOR_EHD”: “8a9935”, “COLOR_IHD”: “8a9935”, “COLOR_EBG”: “71801f”, “COLOR_IBG”: “71801f”}, “BODY_TYPE”:2 “LAYOUT”:{ “COLORBG”: “FFFFFF”, “GRADIENT_TYPE”: “HORI”, “COLOR1”: “afc928”, “COLOR2”: “d7eb67”,“FORCE_SHADOW “:” L”, “COLOR_SHADOW”: “b6b8a7”}}&安培;数据= { “DATA”:{ “MESSAGE”: “你好”, “PHONE”: “0505050505”}, “TYPE”: “smsto”}

我刚刚在(“)(”)之前添加了斜杠,像这样的“EYES”,然后我使用这行代码:

NSString * escapedUrlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; NSURL * imageURL = [NSURL URLWithString:escapedUrlString];     [img_barcode setImageWithURL:imageURL placeholderImage:nil];

我的问题解决了。