从html onload启动iPhone应用程序

时间:2012-06-24 18:43:06

标签: javascript iphone html ios ios5

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

我想从safari启动它。使用URL Schema,它已成功完成。

从我的应用程序中,我想发送一个链接。点击它应该打开我的应用程序。

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

  

点击此处发布APP

这是一个锚点标签,其href =“MyApp:// someString”。

但是当我发送这封邮件时,在iPad上配置邮件,链接工作正常,但在浏览器中它不起作用。然后我才知道Yahoo,Gmail会停用除http://

之外的其他链接

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

使用windows.open('MyApp://'),在onload()功能中,我的应用也没有启动。

怎么做? 如何在加载html时启动我的应用程序?

2 个答案:

答案 0 :(得分:3)

制作一个这样的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>

答案 1 :(得分: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或类似的东西。否则,您将遇到雅虎和Gmail正在避免的相同安全问题。