【问题标题】:Displaying web page in Ionic V4 app - inconsistencies在 Ionic V4 应用程序中显示网页 - 不一致
【发布时间】:2019-03-15 23:07:16
【问题描述】:

多年来,我一直使用以下工具在我自己的 Ionic 应用程序中显示外部网站,没有任何问题:

<a href="https://www.golftocs.com/" style="color: #ffffff; font-size: 18px;">
  golfTOCS
</a>

根据插件文档,我最近继承了一个 Ionic V4 应用程序,该应用程序使用 cordova-plugin-inappbrowser 来显示外部网站。我尝试从我的应用程序中使用我已经工作的解决方案,即没有应用程序浏览器,因此我可以潜在地删除应用程序浏览器插件。但是这不起作用!

当我进行此更改时,应用程序会转换到外部网站,但它并不完全正常运行,并且左上角没有返回应用程序按钮。 Android 和 iOS 上的操作相同。这让我发疯,我只是想了解原因。

这两个应用程序都在 Ionic V4 生产、Angular 7.x.x 和所有插件的几乎最新版本上。我比较了 node_modules、插件、config.xml。我已经尝试在工作和不工作的应用程序之间交换 url - 不依赖于 url。

任何建议将不胜感激。

【问题讨论】:

  • InAppBrowser 让您可以控制这件事,在应用程序或新窗口中打开网页等。所以我不确定您为什么担心使用该依赖项?我使用this.iab.create('http://...', 'system') 之类的东西,效果很好。
  • 谢谢你,这当然有效。我只是想了解我的 2 个 Ionic V4 应用程序之间的不一致之处。好奇的头脑。
  • 新应用的白名单设置是否与旧应用一致,即config.xml中的&lt;allow-navigation&gt;&lt;allow-intent&gt;
  • 谢谢。 &lt;allow-navigation href="*" /&gt; 在使用 InAppBrowser 的应用程序中,但不在我自己的应用程序中。当我将这一行放在我自己的应用程序的 config.xml 中时,查看外部网站不起作用。使用 InAppBrowser 作品在应用程序中使用或不使用它!我想我应该从应用程序中删除它,因为不建议根据 Apache Cordova 文档这样做。无论如何,就是这样,如果您作为答案提交,那么我会将其标记为已回答。再次感谢!

标签: angular ionic-framework


【解决方案1】:

通过Cordova docs&lt;allow-intent&gt; 控制您的应用可以在外部导航到哪些站点,&lt;allow-navigation&gt; 控制您的应用可以在内部(即 WebView 内)导航到哪些站点。尝试设置&lt;allow-intent href="*" /&gt; 以查看它是否可以解决您在新应用中的问题,以及根据您的评论设置&lt;allow-navigation href="*" /&gt;

这两个应用可能都预装了 cordova-plugin-whitelist,所以those docs 或许可以提供帮助。

此外,请以慷慨的Content Security Policy 开头,因为这会增加额外的复杂性 (MDN docs here)。

一旦工作,请确保您的政策尽可能严格,必要时尽可能宽松。

【讨论】:

    猜你喜欢
    • 2019-02-13
    • 2018-12-04
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多