Я нашел решение по этой ссылке:
Как использовать Javascript для связи с кодом Objective-c?
По сути, решение заключается в реализации UIWebViewDelegateпротокол должен использовать методStartLoadWithRequest и «перехватывать» определенное значение схемы.Так что мои ссылки вместо того, чтобы говорить что-то вроде:
<a href="http://someplace.location">
, выглядят так:
<a href="mylink://#filename.ext">
Перехватывая попытки загрузить что-либо с помощью схемы «mylink», я могу использовать:
[[request URL] fragment]
в shouldStartLoadWithRequest и получите файл filename.ext.Затем я освобождаю свой предыдущий UIWebView, загружаю содержимое указанного файла и создаю содержимое нового UIWebView.Эффект заключается в том, что ссылки работают нормально, даже если они реализованы с моим кодом.Я возвращаю НЕТ, потому что я не хочу, чтобы обычная загрузка имела место.Если схема НЕ mylink, я могу вернуть YES, чтобы разрешить нормальную работу.
К сожалению, у меня все еще нет способа перейти к фрагменту в веб-представлении.При ссылке на реальный URL вы можете сказать что-то вроде «www.foo.org # page50» и сразу перейти туда, где объект на новой странице имеет идентификатор «page50».С помощью моего метода я могу перейти только к началу страницы.
Это также не даст мне функцию «возврата», если я не запишу имена файлов и не реализую ее сам.