我们正在为 cordova 开发一个插件,我们希望构建一个从 native 代码运行的回调 javascript。
到目前为止,总结如下,问题是:
NSString *js = [NSString stringWithFormat:@"project.notificationCallback('%@',%@);",uuidString , value];
这应该构建以下示例:
"project.notificationCallback('uuid-uuid-uuid-uuid-uuid',1);"
它不只是返回我们想要的结果,而是返回:
"project.notificationCallback('uuid-uuid-uuid-uuid-uuid',1"
所以它只是切断字符串的最后一部分,当我们这样做时:
NSString *js = [NSString stringWithFormat:@"alert('jemoeder')"];
一切正常,因此我们认为这与 %@
和字符未转义有关。
家里是否有obj-c专家知道如何转义这些字符,或者字符串是否只是几个字符太长?
最佳答案
如果我执行相同的 stringWithFormat 操作,我会得到: project.notificationCallback('uuid-uuid-uuid-uuid-uuid',1);
您确定 NSString *js 已经包含意外结果吗?代码中稍后的某些内容可能会限制字符串的长度。
关于 NSString 的最大长度问题,如果您在本网站右上角的搜索框中发布“nsstring max length”,您已经有了答案(第一个结果)。另外,我建议不要在代码示例中提及某人的母亲。
关于javascript - Objective C chop 字符串的最后一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257349/