【问题标题】:Cordova (iOS, WP8) Multiple WebViewsCordova (iOS, WP8) 多个 WebViews
【发布时间】:2015-10-24 10:47:37
【问题描述】:

我需要为 iOS 和 WP8 创建一个 Cordova 项目。它应该有一个标题栏(可能是用 jQuery 编写的),它也是一个 Tab Navigator。作为页面的内容,将加载外部页面。一旦有人单击链接(来自外部页面),就应该创建一个新选项卡,将其作为按钮添加到标题栏中,并且新页面应该显示为新的 WebView。同时,访问 cordova API 也非常重要。

有可能吗?我想使用 inAppBrowser 插件,但它不支持多个 WebView。

如果您能提供任何帮助,我将不胜感激!

最好的问候

TD

【问题讨论】:

    标签: ios cordova windows-phone-8


    【解决方案1】:

    来自 OP:

    一旦有人点击一个链接(来自外部页面),一个新标签应该 被创建,作为按钮添加到标题栏和新页面 应显示为新的 WebView。同时它非常 访问 cordova API 很重要。

    有可能吗?我想使用 inAppBrowser 插件,但它 不支持多个 WebView。

    回复

    答案是否定的。一旦您加载了外部页面,尤其是使用 InAppBrowser,您就不能再使用设备 API。

    我已尝试修复文档,但在最新一轮更新中,文档变得更糟。

    本段 (from the bug repository) 应包含在文档中。

    InAppBrowser 窗口的行为类似于标准 Web 浏览器,但有一个主要例外 - 它无法访问 Cordova API。这意味着许多核心 Cordcova 插件不可用,其中包括 - 但仅限于加速度计、电池、指南针和地理定位。因此,如果您需要加载第三方内容(被认为是不受信任的),建议使用 InAppBrowser。此外,InAppBrowser 不受白名单约束,也不受 InAppBrowser 内部通过系统浏览器打开链接的影响。

    【讨论】:

    • 感谢您的意见!所以如果 inAppBrowser 插件不能用来做我应该做的事情,你能建议一些作为替代解决方案的东西吗?也许 iFrame 或简单的 Ajax 调用更适合在 Cordova 中保留外部页面并访问 Cordova API?
    • 我已将 inAppBrowser 更改为 iFrame,但嵌入在 iFrame 中的页面有一些相对路径,它们被阻止了。我注意到每个请求的开头都有 file:/// 而不是 https://,所以我认为这是问题所在..
    • 对不起,我上次应该给你这个链接的。 Top Mistakes by Developers new to Cordova/Phonegap。此时您有一个常见的white-list 问题。您可以搜索 SO 或发布新问题 OR 阅读 #6、#7、#10 和 #11。请注意,如果您发布新问题,请告诉我(此处),我可以发布快捷方法。这里没有足够的空间来回答。 TIA
    • 感谢 JesseMonroy 的帮助。不幸的是,我读过这篇文章,但它并没有解决我的问题。一旦我开始使用 iframe 而不是 inAppBrowser 外部页面被部分加载(即背景被加载),但一些资源被阻止并显示一条消息:“Blocked a frame with origin”https://: ” 从访问带有源“file://”的框架。我一直在寻找解决方案,但到目前为止还没有找到任何东西。我已经设置了白名单和 CSP 来访问所有内容,但没有任何变化。
    • 好的,对于 iOS9,您需要确保在 CSP 中使用 'gap:`。对于windows,规则并不明确。我很难找到信息;如果你找到任何请告诉我。 --- 在这一点上我必须问你为什么使用外部网页?我似乎有人出于各种不好的原因使用它们;主要是因为他们对 Cordove/Phonegap 没有完全的了解。 TIA
    猜你喜欢
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多