【问题标题】:External page back to local app in PhoneGap外部页面返回到 PhoneGap 中的本地应用程序
【发布时间】:2016-03-16 20:26:44
【问题描述】:

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

  1. 在本地页面上启动应用程序
  2. 在 AJAX 事件后转到使用 window.location.href 触发的外部页面。
  3. 当使用 window.location.href = "appURL://" 单击关闭按钮时,从外部页面返回到本地应用程序。

我使用自定义 URL (appURL://) 设置了 URL_SCHEME 插件。该 URL 可以直接在浏览器中使用,但不能在应用程序中使用。它似乎只是忽略它并继续其他代码。

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

如果没有浏览器插件,是否无法从外部站点链接回本地应用程序,或者如果没有,我如何使用浏览器插件使其正常工作?我可以完全控制外部网站。

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

【问题讨论】:

    标签: cordova phonegap-build cordova-plugins


    【解决方案1】:

    我认为目前无法按照我的要求进行操作,但是如果将其保留在本地,则可以执行类似的操作并具有更大的灵活性。最好的办法是在本地页面中加载您需要的内容。就我而言,我需要整个网站,包括头脑中的所有东西,所以我使用了 iframe。请记住,由于域不同,iframe 将无法访问上面的窗口,所以我所做的是在本地页面中设置一个 onload 事件来检查 iframe 的更改。当它有我正在寻找的 URL 时,我会以不同的方式处理并在本地应用程序中加载不同的页面。

    这是一个例子。我正在使用 jQuery 并进行设置,以便要检查的 URL 是 /app/LOCALPAGEPATH。因此,如果找到的 URL 是 /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;
        }
    });
    

    【讨论】:

      【解决方案2】:

      你可以让你的关闭按钮执行

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

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

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 1970-01-01
        • 2015-02-20
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多