在 ipad 应用程序网页上触发 HREF

Posted

技术标签:

【中文标题】在 ipad 应用程序网页上触发 HREF【英文标题】:Firing HREF on ipad app webpage 【发布时间】:2016-02-23 14:55:42 【问题描述】:

我正在创建下载应用安装网页。但是,我正在使用 html 来尝试触发此链接。 该链接会触发,但有时会出现一个提示,显示在 App Store 中打开,然后当您单击打开时,它会打开安装弹出窗口以安装应用程序。然后,当您按下然后移动(ontouchmove)时会发生另一个弹出窗口,最后它会创建一个提示,即 safari 无法打开页面,因为地址无效。我尝试了强制触发器和脚本,但似乎没有任何效果,也许是新的 iso 9 东西。

<body  ontouchmove="event.preventDefault();" >
<a ontouchend="window.location='itms-services://?action=download-myapp';">

<div class="top" style="position:absolute;top:0px;left:0px;width:1024px;height:640px;background:u rl() no-repeat;"></div>

<div class="" style="position:absolute;top:0px;left:0px;width:1024px;height:640px;" ontouchstart='this.style.background="url() no-repeat"'  ontouchend='this.style.background=""'></div>

</a>

【问题讨论】:

【参考方案1】:

我对你的示例中的一些 &lt;div&gt;s 有点困惑,它们似乎没有做任何事情。

无论如何,这是我在我们的 Intranet 网页上使用的非常简单的代码,它允许用户下载和安装我们内部的 iPhone 应用程序:

<script type="text/javascript">
    function onInstall()
    
        window.location = "itms-services://?action=download-manifest&url=https://......../MyIphoneApp.plist";
    
</script>

<body>
    <div onclick="onInstall()">
        Download my iPhone app
    </div>
</body>

请记住,指向 .plist 文件的 URL 必须是 https,而不是 http

(这很容易做到,只需将 .plist 文件保存到 Dropbox 文件夹中,然后获取 Dropbox URL。)

此外,请确保您根据需要使用 299 美元的 Apple 开发者许可证(而不是 99 美元的单用户许可证)来创建 Ad-Hoc 和内部应用程序。并且您需要使用使用企业证书的配置文件。

如果弄错了,Xcode 会很乐意让您创建和存档企业应用程序,这将是一团糟。它可能会开始下载并安装到用户的设备上,然后放弃,并出现令人绝望的误导性“应用程序无法安装此时”类型错误。

还要确保您的 .plist 的捆绑版本号与您的项目完全匹配,否则,它将再次开始下载和安装,然后放弃,没有解释原因(设备日志上也没有任何内容)。

我已经烧了很多,很多,追着我的尾巴,由于在这方面完全没有错误报告......

【讨论】:

我尝试了这段代码,虽然它可以正常工作。当我单击并移动并放手时,它不会触发。我正在尝试解决这个问题。 呃,你不应该点击,你应该点击。这是一个网页代码,应该在 iPad 或 iPhone 上的 Safari 浏览器中查看,然后将启动 ios 进程以安装内部应用程序。 顺便说一句。摆脱你身上的“onTouchMove”。将代码直接剥离到我上面显示的行,并说明在 iOS 设备上运行时会发生什么。 我在敲击移动的时候还是会出现同样的问题。

以上是关于在 ipad 应用程序网页上触发 HREF的主要内容,如果未能解决你的问题,请参考以下文章

UITapGestureRecognizer 在 iPad 上触发,但在 iPhone 上不触发,但代码相同

AngularJS谷歌地图点击事件不在ios设备ipad和iphone中触发

触摸事件仅在iPad iOS 11.4上的Mobile Safari中滚动时触发“一次”

为啥 iPad 有时不触发 onload 事件?

在 ipad 与 iphone 上传递本地通知问题

为啥在 iOS Safari Mobile (iPhone / iPad) 中没有触发模糊事件?