Показать веб-сайт внутри ионной вкладки

Я работаю над мобильным приложением, основанным на ионных каркасах (в основном предназначенным для Android). Мой проект - приложение на основе табуляции. На первой вкладке я хочу загрузить внешний веб-сайт, но я не могу понять, как это сделать.

Я попробовал ngCordova InAppBrowser, но он занимает весь экран, и мои вкладки навигации отстают.

Я также пробовал загружать iFrame, и он работает в симуляторе, но это решение вообще не работает на устройствах Android и показывает пустой iFrame (помимо его пределов позиционирования, которые, я думаю, я мог бы отсортировать с помощью css).

Есть ли что-нибудь, чего я не вижу? Любое предложение?

Окончательное приложение должно выглядеть как (его родная версия iOS): Sample Output Design

Ответ 1

Мне удалось решить это с помощью iFrame.

Использование ajax .load() имеет проблемы, такие как загрузка метаданных. Чтобы использовать iFrame, вы должны добавить <access origin="yourwebsite.com/*"/>. Кроме того, вы должны изменить свой Android MainActivity на Create, подобный этому (Я не могу найти источник источника: iframe для приложений Android с использованием Phonegap не работает):

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    super.init();
    super.appView.setWebViewClient(new CordovaWebViewClient(this, super.appView) {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    });
    // Set by <content src="index.html" /> in config.xml
    loadUrl(launchUrl);
}

Ответ 2

Попробуйте загрузить контент с веб-сайта через ajax, а не всю страницу через iframe. Вы можете добиться этого, выполнив это так:

Сначала вы поместите div в это место, где вы хотите, чтобы страница отображалась.

HTML:

<div id="loadExternalURL"></div>

И в JavaScript вы извлекаете код через Ajax или jQuery, и после того, как вы его получили, вы заполните этот div этим кодом:

JS:

/*jQuery*/
$('#loadExternalURL').load('http://www.google.com');

/*ajax*/
$.ajax({
  dataType:'html',
  url:'http://www.google.com',
  success:function(data) {
    $('#ajax').html($(data).children());   
  }
});