我有一个click-to-send-sms按钮。
现在我点击按钮时使用此代码:
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?
答案 0 :(得分:9)
似乎没有。刚在运行iOS 10.0.1的iPhone 6+上测试过这个。
<!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
会添加空格)。因此,我建议使用body
来清理encodeURIComponent
。
据我所知,Apple似乎还没有更新他们的documentation on this:
sms方案用于启动Messages应用程序。此类型的URL格式为“sms:”,其中是一个可选参数,用于指定SMS消息的目标电话号码。此参数可以包含数字0到9以及加号(+),连字符( - )和句点(。)字符。 URL字符串不得包含任何消息文本或其他信息。
但是,body
参数显然有效。
iOS&lt; 7 <a href="sms:0412345678;body=text">send sms</a>
iOS&gt; 7 <a href="sms:0412345678&body=text">send sms</a>
经过测试,我确认<a href="sms:0412345678&body=test">send sms</a>
可以使用: