在iOS 10中尝试发送短信时,显示“sms”;协议破裂
Trying to send sms in iOS 10, Is "sms:" protocol broken?
我有一个点击发送短信按钮。
现在我在点击按钮时使用以下代码:
if (platform == 'iOS') {
if (version == 4 || version == 5 || version == 6 || version == 7) {
link = 'sms:' + serviceNumber + ';body=' + body;
} else {
link = 'sms:' + serviceNumber + '&body=' + body;
}
} else {
link = 'sms:' + serviceNumber + '?body=' + encodeURIComponent(body);
}
window.location.href = link;
他们告诉我它在iOS 10中不再工作了,当点击按钮时什么也没有发生。(问题不在于UA识别,它进入了"&body=…")
目前我没有ios 10设备调试…他们是否改变了打开短信发件箱的方式?也许我必须使用encodeURIcomponent的身体像android/windows?
似乎不是。刚刚在我的iPhone 6+上测试了一下,运行iOS 10.0.1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
<a href="sms:0412345678&body=testing">send sms</a>
<button onclick="window.location.href = 'sms:0412345678&body=testing'">send sms</button>
</body>
</html>
点击链接和按钮效果都很好,打开了消息应用程序,输入了正确的号码,并在正文中添加了文字。
添加空格、数字和符号有效。尽管应用了标准的URI组件(例如,添加%20
会添加一个空格)。所以我建议用encodeURIComponent
消毒body
。
据我所知,苹果似乎还没有更新他们的文档:
sms方案用于启动Messages应用程序。此类型url的格式为" sms: ",其中为可选参数,指定短信的目标电话号码。取值范围为数字0 ~ 9和"+"、"-"、"。"。URL字符串不能包含任何消息文本或其他信息。
但body
参数明显起作用。
iOS & lt;7 <a href="sms:0412345678;body=text">send sms</a>
iOS> 7 <a href="sms:0412345678&body=text">send sms</a>
经过测试,我已经确认<a href="sms:0412345678&body=test">send sms</a>
工作在:
- iPhone 6+ (iOS 10.0.1)
- iPhone 6 (iOS 10)
- iPhone 5 (iOS 9)
- iPhone 4S (iOS 8)
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 音频控件在mouseover上显示,在mouseout上淡出
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 显示5秒后隐藏潜水
- 画廊图像未显示
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 高亮显示时编辑文本大小和颜色
- 有时数据是't显示在浏览器中
- 当鼠标悬停在文本中的单词上时显示警报
- 角度图表;t显示在我的页面中
- 在iOS 10中尝试发送短信时,显示“sms”;协议破裂