Часть приложения для iPhone, которое я разрабатываю, использует UIWebView , чтобы получить событие onclick для определенных элементов на странице.Одна проблема, которая возникла, связана с определенными страницами, например, версия iPhone http://news.google.com,, на которой уже есть шестнадцатеричная страница, в которой не было ссылок, как показано ниже:
javascript:window.open('/news/url?sa\x3dt\x26ct3\x3dMAA4CEgAUABgAWoCdXN6AWjYAQE\x26usg\x3dAFQjCNGUV1AFw0LsmkcQzNnvo69ma_dhhA\x26rt\x3dHOMEPAGE\x26url\x3dhttp://www.cnn.com/2010/US/11/30/wikileaks/?hpt%3DSbin');void(0);
Когда я получаю функцию от UIWebView с использованием следующего метода:
[webView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:@"SomeFunction(%i,%i);",(NSInteger)pt.x,(NSInteger)pt.y]]
Я получаю строку с экранированными символами в ней как действительные символы.Таким образом, я получаю обратно из вышеупомянутого метода вызов javascript с шестнадцатеричным экранированием вместо:
javascript:window.open('/news/url?sa=t&ct3=MAA4CEgAUABgAWoCdXN6AWjYAQE&usg=AFQjCNGUV1AFw0LsmkcQzNnvo69ma_dhhA&rt=HOMEPAGE&url=http://www.cnn.com/2010/US/11/30/wikileaks/?hpt%3DSbin');void(0);
Я пробовал все виды методов экранирования String в Javascript, такие как процентное экранирование и URIEncoding / URIDecoding, но он делаетпохоже, не работает, просто продолжает отправлять экранированную строку вместо реальных символов.
Любая помощь будет принята с благодарностью!