外部页面返回PhoneGap中的本地应用程序

时间:2016-03-03 20:24:30

标签: cordova phonegap-build cordova-plugins

我已经阅读了很多关于此的帖子和文章,但仍然找不到一个好的解决方案。我想:

  1. 在本地页面上启动应用
  2. 转到AJAX事件后使用window.location.href触发的外部页面。
  3. 使用window.location.href =“appURL://”单击关闭按钮时,从外部页面返回本地应用程序。
  4. 我使用自定义网址(appURL://)设置了URL_SCHEME插件。该URL直接在浏览器中运行,但不在应用程序内。它似乎只是忽略它并转向其他代码。

    现在我已经阅读了有关InAppBrowser和ChildBrowser的内容。我尝试了InAppBrowser,但它没有保留我需要的设置,如appendUserAgent和AllowInlineMediaPlayback。我知道我可以设置后者,但没有找到前者的方法。我还想确保它只保留在横向中,并且不希望有两个不同的位置进行配置设置。即使没有它,我仍然无法将其链接回应用程序。

    如果没有浏览器插件,没有办法从外部网站链接回本地应用程序,或者如果没有,如何使用浏览器插件使其运行良好?我完全控制了外部网站。

    我正在测试的主要设备是iOS 9.2.1上的iPhone 6,我正在使用PhoneGap Build。

2 个答案:

答案 0 :(得分:1)

我认为不可能做我现在提出的问题,但如果你把它保留在本地,你可以做类似的事情,并有更大的灵活性。最好的办法是在本地页面中加载您需要的内容。就我而言,我需要整个网站,包括头部的所有内容,所以我使用了iframe。请注意,由于域名不同,iframe无法访问上面的窗口,因此我所做的是在本地页面设置onload事件以检查iframe更改。当它有我想要的URL时,我将以不同的方式处理并在本地应用程序中加载不同的页面。

这是一个例子。我正在使用jQuery和设置,以便检查的URL是/ app / LOCALPAGEPATH。因此,如果找到的网址是/app/index.html,则会转到index.html。

$('iframe').load(function(){            
    var url = $(this).get(0).contentWindow.location.href;
    var appIndex = url.indexOf('/app/');
    if (appIndex > -1) {
        var appURL = url.substr(appIndex+5);
        window.location.href = appURL;
    }
});

答案 1 :(得分:1)

您可以执行关闭按钮

window.history.go(-(window.history.length - 1));

这应该回到本地index.html,因为它是它加载的第一个页面。