【问题标题】:Launch iPhone app from html onload从 html onload 启动 iPhone 应用程序
【发布时间】:2012-06-24 18:43:06
【问题描述】:

我已经创建了一个 iPad 应用程序。

我想从 Safari 启动它。有了 URL Schema,就成功了。

我想从我的申请中发送一个链接。点击哪个会打开我的应用程序。

我发送的邮件包含以下内容

点击此处启动应用

这是一个锚标记,其 href = "MyApp://someString"。

但是当我将其作为邮件发送时,在 iPad 配置的邮件上,链接工作正常,但在浏览器中却不工作。后来才知道Yahoo、Gmail会停用除http://开头以外的链接

现在,我想使用 URL 架构 MyApp:// 打开我的应用程序,并使用 HTML Onload 类似于在打开 itunes.apple.com 时在我们的 PC 中打开 iTunes

使用windows.open('MyApp://'),在onload() 函数中,我的应用程序也无法启动。

如何做到这一点? html 加载时如何启动我的应用程序?

【问题讨论】:

  • 你这里好像有两个问题。 1. 在 Yahoo 邮箱和 GMail 中打开您的应用程序的链接不起作用。 2、window.onload无法打开你的应用。你应该单独问他们。
  • “使用windows.open('MyApp://'),在onload() 函数中,我的应用程序也无法启动。” — 您是否尝试过window.open('MyApp://'),即window 末尾没有s

标签: javascript iphone html ios ios5


【解决方案1】:

制作一个这样的 PHP 页面:

<?php
 header("Location: MyApp://somestring;")(
?>
<html>
 <head>
  <meta http-equiv="Refresh" content="0; MyApp://somestring" />
  <title>Opening App...</title>
  <script>
   function openApp() {
    window.location.href = "MyApp://somestring";
   }
  </script>
 </head>
 <body onload="openApp();">
  <a href="MyApp://somestring">Click here if app doesn't open...</a>
 </body>
</html>

【讨论】:

  • 只需&lt;?php header("Location: MyApp://somestring;")( ?&gt; 就足以打开网址。不需要 onload() 函数。
  • 最好是冗余的。以防万一一种方法不起作用,还有更多方法。其中一个肯定会起作用。
  • @TaruniNeema 嗨,我来晚了。你能这么友善地解释一下为什么以及如何工作吗?回答者是否打算将所有这些都放入您的应用程序的邮件中?谢谢。
  • @Unheilig.. 我用上面的脚本创建了一个 PHP 文件并托管在我的网站上。而且,我正在使用带有少量参数的 PHP 文件的链接。
  • @TaruniNeema 能否请您介绍一下如何通过几个参数使用 PHP 的链接?提前感谢您的帮助。
【解决方案2】:

我怀疑任何在线电子邮件客户端都会让您在电子邮件中运行 javascript。这将是非常不安全的。如果他们拒绝处理除 HTTP 之外的任何其他 URL 架构,可能是因为同样的安全问题。

我会通过像

这样的链接来解决这个问题
<a href="http://mydomain.com/open-app?schema=MyApp">CLICK HERE TO LAUNCH APP</a>

然后你服务器上的页面就会打印出来

<script>
    window.location.href="<?= $_GET['schema'] ?>://";
</script>

(PHP 中的示例)

只需确保在打印之前清理架构变量!

您可以使用正则表达式来确保它只有 a-z 或类似的东西。否则,您会遇到 Yahoo 和 Gmail 正在避免的相同安全问题。

【讨论】:

  • 例如,http://itunes.apple.com/in/app/angry-birds/id343200656?mt=8。当您单击此链接时,它将打开您的 AppStore。同样,我想以同样的方式做到这一点。加载 html 后,它会自动在您的设备中打开 AppStore。
  • 我敢打赌,Apple 正在做与 Geon 刚刚建议的相同的 PHP 技巧(或者是“WebObjects”?)。
  • @ranReloaded.. 你是对的。苹果也在做同样的事情。如果网络不可用,则不会启动 AppStore。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2011-02-12
  • 1970-01-01
  • 2011-03-14
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多