<html>
<body>
<a href="sms:+24321&body=This%20is%20the%20body">Click Me!</a>
</body>
</html>
单击上面的链接后,iOS会成功打开本机iOS Messages应用程序。如果用户以前在手机的后台打开iOS消息应用程序,那么iOS会正确传入链接中包含的查询参数,例如to:(24321)and body :(这是正文),但如果用户尚未打开iOS消息,则iOS会打开消息,但不会打开消息并填写正文。
这不是iOS 10上的问题,似乎已经在iOS 11中引入。
答案 0 :(得分:2)
这显然是iOS 11的错误。
与openURL相同的错误,使用此代码,如果没有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]];
}
通过双重调用,首先打开消息应用程序,然后传递正确的参数。
通过双重调用可以正常运行,但它是 BAD 解决方法!
网络代码也应如此。
我只能建议您在this链接向Apple报告错误。
这个答案不是为了赏金,我只想和你分享我的考试。 ;)