【问题标题】:Phonegap php header redirect not working in androidPhonegap php标头重定向在android中不起作用
【发布时间】:2016-04-03 17:17:03
【问题描述】:

不过,它可以在桌面浏览器中使用。

代码如下:

        var options = {
            clearsessioncache: "yes",
            clearcache: "yes"
        };

        data = {};

        url = "test.php"

        var ref = window.open(url,'_blank','location=no,toolbar=no,hidden=yes','closebuttoncaption=Return');

而且我还有通过 loadstop 上的执行脚本注入的代码。

这适用于桌面浏览器。用户单击该按钮并在 test.php 中重定向如下:

header("Location: $url");
exit;

但是,它在 android 中运行时失败。页面保持空白,不会发生重定向。知道为什么会发生这种情况吗?

【问题讨论】:

  • php 不是 wotk 因为 android 没有 php 解释器
  • @Naumov 这没有意义,因为 php 代码是在服务器中运行的
  • @Fane 两件事。 1) Phonegap 不是webserver or a webbrowser。 2) 你知道Google and Apple frown on apps 都是网站包装器吗?
  • @JesseMonroy650 1) 是的,但我只是在我的应用程序中实现第三方身份验证,所以如果它在 AppBrowser 中,它仍然应该读取 PHP 重定向 2) 是的,但也许它适合我的需要3)你能帮助我还是只是一个屈尊的知识分子? :))
  • @Fane "condescendent知识分子"您是否因为您的应用可能被拒绝而感到受到侮辱。你应该克服它并决定你是否真的想要做这个应用程序。如果是这样,我可以提供帮助。否则,您可能会考虑另一种工作。编写软件不适合那些在事实出现时会“感到受伤”的人。

标签: php android cordova phonegap-plugins phonegap-build


【解决方案1】:

首先,php 不能在移动设备上运行,因为它是服务器端语言,而不是客户端语言。现在,javascript 重定向不起作用,因为它需要在 config.xml 中添加“Cordova Whitelist Plugin

<gap:plugin name="cordova-plugin-whitelist" spec="1.1.0" />

或者干脆

<plugin name="cordova-plugin-whitelist" spec="1.1.0" />

之后尝试将以下内容放入您的 config.xml

<content src="index.html" />

是源目录中 HTML 文件的路径。

<access origin="*" />

将允许您使用 JS 重定向到任何外部页面。如果您想将您的应用程序限制在单个域中,请像这样使用它。

<access origin="http://yourdomain.com" />

最后,输入以下意图

<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />

【讨论】:

  • 所有这些都包含在 config.xml 中。正如我所说,它在调试phonegap时在浏览器上工作,它在android的phonegap应用程序中失败。问题一定出在别的地方……
【解决方案2】:

你应该提供test.php页面的绝对路径。(如果我没有错,你的php页面将在你的服务器中)

        var options = {
            clearsessioncache: "yes",
            clearcache: "yes"
        };

        data = {};

        url = "http://yourserver.com/test.php"

        var ref = window.open(url,'_blank','location=no,toolbar=no,hidden=yes','closebuttoncaption=Return');

【讨论】:

  • 这不是问题,我说在桌面版上可以工作
  • @Fane 如果我没记错,您的桌面版本应该托管在同一台服务器上,因此它可以在相对路径下正常工作。但是当您创建应用程序时,您的应用程序不知道服务器的基本 url,因此您需要提供绝对 url。将 url 改为绝对 URL 并检查一次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 2021-07-16
相关资源
最近更新 更多