在 PhoneGap 应用程序中,我试图从我的 .m Objective C 文件中返回一行 JavaScript。我可以对一个变量毫无问题地这样做,但另一个变量会默默地失败。NSString 变量 *text 的声明方式似乎有些矛盾,但我是 Objective C 的新手,无法判断代码有什么问题。请参阅下面的代码。
- (void)umSwipe_receivedSwipe:(NSNotification *)notification {
NSLog(@"umSwipe_receivedSwipe called");
NSData *data = [notification object];
NSString *text = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
// FAIL: This fails silently
NSString* orig = [NSString stringWithFormat:@"alert('%@')", text];
[super writeJavascript:orig];
// This works great
NSString* someVar = @"B1234221012341234^LAST/FIRST^151710100000000099000000?;1234221012341234=15171010000000099?";
NSString* concat = [NSString stringWithFormat:@"alert('%@')", someVar];
[super writeJavascript:concat];
}
作为背景,这是利用 iPad 上的UniMag 磁条扫描仪。
当它们包含相同的字符数据时,为什么一个变量会起作用而另一个变量不起作用?如何将此变量合并到我在 iOS PhoneGap 应用程序中发送到 JavaScript 的字符串中?
顺便说一句,如果答案中有更正的代码,而不仅仅是指向某个东西的链接,我更有可能欣赏和理解答案。
谢谢。
编辑:所以我发现错误是 JavaScript 错误。仍然不确定到底是什么问题,但 NSString 变量中必须有某种不可见的字符,这会扼杀 JS 体验。也许当我 NSLog 它时不显示的换行符......?