首页 > 解决方案 > sms: 和 mailto: iPhone Safari 移动浏览器失败

问题描述

问题:

带有 sms: 和 mailto: 的网页在 ios 移动 safari 浏览器上链接失败。单击链接会将您重定向到:

Safari 无法打开页面,因为它无法重定向到以“sms:”开头的位置

或者

Safari 无法打开该页面,因为它无法重定向到以“mailto:”开头的位置

直到大约两三个月前,这些都可以正常工作。现在这些在使用 Safari 浏览器的 Apple 移动设备上失败了。

背景:

典型代码:

<li>
    <div class="userName">Jane Doe</div>
    <div class="phoneNumber"><a href="tel:+1321-555-1234">321-555-1234</a></div>
    <div class="sms"><a href="sms:+1321-555-1234"><img src="../images/crosstxt-icon.jpg"></a></div>
    <div class="email"><a href="mailto:jane.doe@yahoo.com"><img src="../images/email-icon.png"></a></div>
</li>

如果您在 Apple 移动设备的浏览器中打开它,我想知道这是否会显示问题:

<a href="sms:+1321-555-1234">Click here to create a SMS message.</a>
<br>
<a href="mailto:jane.doe@not_a_real_email_service.com">Click here to create an email message.</a>

显然这是一个失败。你甚至看不到我的移动设备上的运行代码片段按钮。

标签: htmlioshyperlinkmobile-safariios-universal-links

解决方案


测试,更多测试...

我刚刚发现...如果我将网站保存到我的移动设备主页,这样一个图标就会添加到主屏幕并处于显示模式,您将看不到顶部的 URL 地址栏,也看不到底部的 Safari 选项栏那么 SMS: 将失败。如果您只是在 Safari 中打开地址,但不保存文件,那么它会很好用。

同样,当我处于Apple Web Application mode时,SMS 链接失败。

一个 hack... 通过 iphone 上的 Safari 移动浏览器打开该站点。将站点保存到主页。验证图标是否在手机上。转到设置 --> Safari --> 高级 --> 网站数据,然后通过向左滑动内容来删除网站。缓存存储是干净的,但图标仍然在移动屏幕上。使用图标帮助登录,但不要再次保存站点。请注意 URL 行是可见的。短信将起作用。

仍然在这里测试......我试图建立一个简单的例子来说明这个问题。我完全无法让示例因上述错误消息而失败。作为参考,测试站点在这里。 测试源代码在这里。

我怀疑这个问题围绕着这两个有问题的站点都位于一个子域站点的事实。(mywebapp.appspot.com)当清单包含所有“有效”内容时,该站点确实显示为没有可见 URL 行的 ios Apple Web 应用程序......但每当我处于该模式时,SMS 链接完全失败。

话虽如此,您可以通过 控制存储模式 <meta name="apple-mobile-web-app-capable" content="yes">

在我的测试过程中,我还注意到只要 manifest.json 文件包含//注释标记,Safari 就会忽略该文件。通常//.json 文件中不允许使用注释,但根据MSN 源,它们在 manifest.json 文件中是可以的。

选择是

  • 有点丑陋和实用,或者
  • 漂亮且无功能

目前我正在运行<meta name="apple-mobile-web-app-capable" content="no">......我在主屏幕上获得了自定义图标的优势,即使网络应用程序显然仍然在移动浏览器中,顶部/底部信息行可见,叹息。


推荐阅读