gpt4 book ai didi

ios - PhoneGap InAppBrowser : open iOS Safari Browser

转载 作者:可可西里 更新时间:2023-11-01 05:04:39 25 4
gpt4 key购买 nike

在我们的 PhoneGap iOS 应用程序中,我们使用 InAppBrowser 插件来显示一些内容,我们需要从 InAppBrowser 中在 Safari 中打开一个页面。

我们如何在 Safari 中打开 InAppBrowser 中的 链接?

最佳答案

来自phonegap documentation :

Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.

var ref = window.open(url, target, options);
  • ref: Reference to the InAppBrowser window. (InAppBrowser)
  • url: The URL to load (String). Call encodeURI() on this if the URL contains Unicode characters.
  • target: The target in which to load the URL, an optional parameter that defaults to _self. (String)

    • _self: Opens in the Cordova WebView if the URL is in the white list, otherwise it opens in the InAppBrowser.
    • _blank: Opens in the InAppBrowser.
    • _system: Opens in the system's web browser.

所以要回答您的问题,请使用:

window.open(your_url, '_system', opts);

请注意,域需要列入白名单。


2014 年 4 月 25 日更新:

我想我有点误解了这个问题(感谢评论者@peteorpeter)——您想通过某种方式单击 InAppBrowser 中的链接并在系统浏览器(例如 iOS 上的 Mobile Safari)中打开该链接。这是可能的,但需要应用程序开发人员和负责页面链接的人员之间进行一些深思熟虑和合作。

当您创建一个 IAB 实例时,您将获得对它的引用:

var ref = window.open('http://foo.com', '_blank', {...});

您可以 register a few event listeners关于那个引用:

ref.addEventListener('loadStart', function(event){ ... });

每次 IAB 的 URL 发生变化(例如,单击链接、服务器返回 302 等...)时都会触发此特定事件,您可以检查新的 URL。

要进入系统浏览器,您需要在 URL 中定义某种标志。您可以做任意数量的事情,但对于此示例,我们假设 url 中有一个 systemBrowser 标志:

.....html?foo=1&systemBrowser=true

您将在您的事件处理程序中查找该标志,当找到时,踢出系统浏览器:

ref.addEventListener('loadStart', function(event){
if (event.url.indexOf('systemBrowser') > 0){
window.open(event.url, '_system', null);
}
});

请注意,这不是检测 url 中标志的最佳方法(可能会导致误报),我很确定 PhoneGap 白名单规则仍然适用。

关于ios - PhoneGap InAppBrowser : open iOS Safari Browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16519257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com