Итак, после небольшого количества исследований становится ясно, что класс UIWebView преднамеренно игнорирует ссылки, которые будут открываться в новом окне (либо с помощью элемента 'target' в теге, либо с помощью javascript в событии onClick).
Единственные решения, которые я нашел, - это манипулирование html-страницей с использованием javascript. Хотя это работает в некоторых случаях, это не пуленепробиваемый. Вот несколько примеров:
links = document.getElementsByTagName('a');
for (i=0; i<links.length; i++)
{
links[i].target='_self';
}
Это изменит все ссылки, которые используют элемент 'target', чтобы указывать на _self - вместо _blank или _new. Это, вероятно, будет работать по всем направлениям и не представляет никаких проблем.
Другой фрагмент, который я нашел, следовал той же идее, но с событием onClick:
links = document.getElementsByTagName('a');
for (i=0; i<links.length; i++)
{
links[i].onclick='';
}
Этот просто противный. Он будет работать только в том случае, если в теге ссылки правильно задан элемент href, и только в том случае, если событие onclick используется для открытия нового окна (с помощью window.open () или чего-то подобного). Причины, по которым это противно, не нужно объяснять, но один пример может быть, если onClick используется для чего-то кроме открытия окна - что является очень распространенным случаем.
Полагаю, можно пойти дальше и начать сопоставление строк с помощью метода onClick и проверить на наличие window.open (), но, опять же, это действительно далеко от идеала.