短信和mailto:iPhone Safari移动浏览器失败 测试,更多测试...

问题:

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

  

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

  

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

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

背景:

  • 我为基于活动的团队创建响应式网页。我们要做的事情之一就是提供团队名单。名册包括电话号码,SMS文本页面和电子邮件的链接。
  • 为使事情简单,我们使用简单的网页。
  • 由于安全和隐私问题,仅在登录后通过node.js服务器通过ajax调用提供此内容。我们正在使用单个node.js Express服务器来托管网站内容并管理http / api调用。
  • 通常,单击链接会将移动设备推送到相应的本机应用程序中,以进行电话,SMS短信或电子邮件。
  • 这在所有设备上都运行了好几年。
  • 最近我们在iPhone上看到了问题...但是...
  • 这是最奇怪的部分。我有3个团队使用此技术。.仅在三个团队中有两个失败。短信链接在那很好。
  • “ tel:”链接在所有设备上均可正常运行。
  • 仅在iPhone上的sms和mailto:这三个站点中的两个站点上发生故障。在Android设备,Windows和MacOS上,一切仍然可以正常工作。问题是苹果移动设备。
  • 发生故障的两个站点是Progressive Web Apps,带有manifest.json文件和service_worker.js。正常工作的网站都没有。当我删除清单并关闭服务人员时,没有任何改善。
  • 这三个网站都是通过App引擎在Google Cloud托管的。失败的两个站点仅使用web_app.appspot.com寻址。运作良好的网站使用的是真实网址,指向应用程序引擎的位置。

典型代码:

<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>

显然这是失败的。您甚至都看不到我的移动设备上的“运行摘要”按钮。

xyx006 回答:短信和mailto:iPhone Safari移动浏览器失败 测试,更多测试...

测试,更多测试...

我刚发现...如果将网站保存到我的移动设备主页上,从而将图标添加到主屏幕并处于显示模式,则看不到顶部URL地址栏或Safari选项栏然后在底部的SMS:将失败。如果您只是在Safari中打开地址,但不保存文件,那么它将非常有用。

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

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

此处仍在测试... 我试图建立一个简单的例子来说明这个问题。我完全无法使示例由于上面的错误消息而失败。供参考,测试站点为here.测试源代码为here.

我怀疑问题与以下事实有关:两个站点都位于一个子域站点。 (mywebapp.appspot.com)当清单包含所有“有效”内容时,该站点确实显示为ios Apple Web应用程序,而没有可见的URL行...但是,只要我处于该模式,SMS链接就会完全失败。 / p>

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

在测试期间,我还注意到,每当manifest.json文件包含//注释标记时,Safari会忽略该文件的任何位置。通常,.json文件中不允许//注释,但根据MSN source,,在manifest.json文件中可以使用注释。

选择是

  • 有点丑陋且功能强大,或
  • 功能齐全

当前,我正在运行<meta name="apple-mobile-web-app-capable" content="no"> ...我可以在主屏幕上获得自定义图标的优点,即使该Web应用仍明显位于移动浏览器中,并且顶部/底部信息行可见, 。

本文链接:https://www.f2er.com/3157369.html

大家都在问