【问题标题】:Show a website inside an ionic tab在离子标签中显示网站
【发布时间】:2015-06-30 05:39:46
【问题描述】:

我正在开发一个基于离子框架的移动应用程序(主要针对 Android)。我的项目是一个基于标签的应用程序。在第一个选项卡中,我想加载一个外部网站,但我不知道该怎么做。

我尝试了 ngCordova InAppBrowser,但它需要全屏并且我的导航选项卡落后了。

我也尝试加载一个 iFrame,它可以在模拟器中运行,但是这个解决方案在 android 设备上根本不起作用,并且显示一个空的 iFrame(除了它的定位限制,我认为我可以使用 css 对其进行排序)。

我有什么遗漏吗?有什么建议吗?

最终应用应如下所示(其原生 iOS 版本):

【问题讨论】:

  • 网站被列入白名单?
  • 有没有办法在部分应用中加载 InAppBrowser?!
  • @King Salam。 mitunam 电子邮件 etuno dashte basham?马姆努恩 :)
  • @vahidnajafi,萨拉姆。哈赫什米科南。我在 shahabm dot com

标签: cordova phonegap-plugins ionic-framework inappbrowser


【解决方案1】:

尝试通过 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());   
  }
});

【讨论】:

  • 谢谢@Sithys,我想到了这个方法。但是,我认为远程页面上的 JS 文件不会以这种方式运行(如 Google Analytics)。我对吗?如果是这样,您能提出任何解决方案吗?
  • Google Analytics 可通过插件获得。我发布的方法仅适用于您要在网站上显示的页面。你也想使用那个网站的功能吗?
  • 网站是Bazar360.com。可以看到,上面没有重要的 JS,连 jQuery 也没有。但是,当我尝试这种方法时,我点击了en.wikipedia.org/wiki/Same-origin_policy :-/ 我设法通过 jQuery 绕过它,但它在设备上不起作用。这真的很令人沮丧,所以我正在考虑转向本地... :-/
  • Sithys 和@Flatlineato,有没有办法在屏幕的一部分加载 InAppBrowser?!
【解决方案2】:

我设法使用 iFrame 解决了这个问题。

使用 ajax .load() 会出现加载元数据等问题。要使用 iFrame,您应该添加&lt;access origin="yourwebsite.com/*"/&gt;。此外,您应该像这样在 Create 上更改您的 Android MainActivity(我找不到源源:iframe for Android apps using Phonegap not working):

@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);
}

【讨论】:

  • 没有纯离子方式吗?
  • @KiJéy 这个解决方案在最新版本的 ionic 中不再有效。我不确定(不记得了!)但我认为问题已经消失了。
  • 问题对我来说并没有消失,我目前正在用 iFrame 解决它,但它看起来很脏!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 2016-12-22
相关资源
最近更新 更多