iOS 11短信应用程序参数无效

8
<html>
<body>
  <a href="sms:+24321&body=This%20is%20the%20body">Click Me!</a>
</body>
</html>

当您点击上面的链接时,iOS会成功打开本地iOS消息应用程序。如果用户之前在他们的手机上后台打开了iOS消息应用程序,则iOS会正确传递链接中包含的查询参数,例如to:(24321)和body:(This is the body),但如果用户尚未打开iOS消息,则iOS将打开消息,但不会打开填写to和body的消息。
这在iOS 10上不是问题,似乎是在iOS 11中引入的。

调用 openURL 两次对我来说在 iOS 11.1 中并没有解决问题,但是我在最新的 iOS 11.2.1 中进行了检查,并且在这个更新中已经修复了。 - Sandipan Banerjee
1个回答

2
“这显然是iOS 11的一个bug。
使用openURL时也有同样的bug,使用以下代码(不带if状态),我们得到相同的结果:”
NSString *sms = @"sms:+1234567890&body=This is sms body.";
NSString *url = [sms stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11.0)
{
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}

使用双重调用,首先打开消息应用程序,然后传递正确的参数。虽然使用双重调用可以工作,但这是一种糟糕的解决方法!在Web代码中也应该发生同样的情况。我只能建议您在this链接上向苹果报告错误。这个答案不是为了赏金,我只是想与您分享我的测试。;)

已经向苹果报告了,他们说我们没有确切的时间来修复这个问题。 - Apurv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接