У меня есть простое приложение Cordova, которое указывает на внешнюю веб-страницу, не определяя никаких своих собственных представлений.
Я хотел бы, чтобы все внутренние ссылки из этого домена загружались внутри приложения, но все внешние ссылки (http://twitter.com и т.д.). для загрузки в системный браузер, поэтому на страницах есть функции Back/Forward.
В обычном приложении с представлениями я мог бы установить target='_system'
для загрузки ссылок в браузере по умолчанию или использовать cordova-plugin-inappbrowser явно открывать ссылки в представлении веб-браузера. К сожалению, в этом случае у меня нет возможности редактировать код на стороне сервера, поэтому вам нужно решение, которое работает в приложении.
Если я определяю config.xml
как таковой, тогда как внутренние, так и внешние ссылки загружаются в приложение.
<content src="http://example.com/" />
<access origin="*" />
<allow-navigation href="*" />
Если я определяю config.xml
с allow-intent
, тогда внутренние и внешние ссылки открываются в системном браузере.
<content src="http://example.com/" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="#" onclick="location.href='http://*/*'; return false;" />
<allow-intent href="#" onclick="location.href='https://*/*'; return false;" />
Другие имеют , используя пользовательский javascript для переопределения target
to _system
, однако, поскольку у меня нет собственных взглядов, я не могу этого сделать.
Можно ли определить allow-intent
для cordova-plugin-whitelist таким образом, чтобы включить все URL-адреса, которые не являются внутренним доменом
Или мне нужно каким-то образом переопределить shouldStartLoadWithRequest
в MainViewController
, а затем вызвать [[UIApplication sharedApplication] openURL:url]
?