问题与目标C传递对象到JavaScript函数调用

问题描述:

下面是发生了什么事情的一个例子:看起来,当一个单词中使用撇号,例如我发送到JavaScript时,它不工作在我的字符串中函数调用。我已经阅读过关于在撇号前添加反斜杠的内容,但这仍然不起作用。我注意到在js函数调用onScan('%@')时,撇号不能替换为“引号”,并且当使用括号传递参数时也无济于事。同时将NSMutableString更改为NSString不会更改此示例或影响此请求的答案。任何帮助表示赞赏。问题与目标C传递对象到JavaScript函数调用

NSMutableString*messagText= @"I'm posting on stack."; 

    messageText = [[messageText stringByReplacingOccurrencesOfString:@"'" 
                 withString:@"\'"] 
                 mutableCopy]; 

    NSString *javascriptString = [NSString stringWithFormat:@"onScan('%@')", messageText]; 

    [webView stringByEvaluatingJavaScriptFromString:javascriptString]; 
+0

表明,你已经添加了singlQuote反斜线的代码。 –

+0

这已根据您的要求更新。谢谢! – Devdude

+0

你能解释为什么这个工程? – Devdude

为了逃避单引号,则需要双反斜线 试试这个:

NSString *messagText= @"I'm posting on stack."; 
if ([messagText containsString:@"'"]) { 
     messagText = [NSString stringWithFormat:@"onScan('%@')",[messagText stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"]]; 
} 
[webView stringByEvaluatingJavaScriptFromString: messagText]; 
+0

这个工作!....我upvoted这个答案,但我从堆栈中得到了以下回复“感谢您的反馈!投票少于15声誉的投票记录,但不改变公开显示的职位得分。 – Devdude