Я обнаружил, что настройка window.location
внутри UIWebView, похоже, имеет побочные эффекты.В частности, он предотвращает любые дальнейшие манипуляции JS с DOM, даже если ваш shouldStartLoadWithRequest:
возвращает YES.
Существует решение для ведения журнала консоли, включающее механизм опроса, описанный здесь , , который может бытьрасширен, чтобы разрешить вызов любого произвольного метода target-c, но, вероятно, это повлияет на производительность.
Другое решение, если вы хотите обойтись без функции javascript alert()
, - переопределить runJavaScriptAlertPanelWithMessage:
UIWebView.метод в категории.Это используется здесь , чтобы изменить внешний вид диалогового окна предупреждения, но также может быть использовано для вызова любого произвольного метода target-c, основанного на содержимом сообщения.Тем не менее, имейте в виду, что это недокументированный API-интерфейс, и поэтому его не следует использовать в производстве (это может привести к отклонению вашего приложения).