如何以编程方式撰写邮件?

Ben*_*ner 6 swift watchkit

如何在撰写屏幕上打开"消息"应用程序,并在消息正文中预先加载特定文本?

小智 6

Benjy的答案几乎是正确的,但有一个问题.

由于urlSafeBody未展开,字符串插值产生

短信:体=可选( "你好%20World!")

这导致NSURL初始化返回nil,因为URL字符串格式错误.

这是一个有条理地解开选项的工作示例.这消除了与强制解包的nil选项相关的任何崩溃的可能性.

let messageBody = "Hello World!"
let urlSafeBody = messageBody.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet())
if let urlSafeBody = urlSafeBody, url = NSURL(string: "sms:&body=\(urlSafeBody)") {
    WKExtension.sharedExtension().openSystemURL(url)
}
Run Code Online (Sandbox Code Playgroud)


Ben*_*ner 0

感谢@Jatin找到了这个openSystemURL(url: NSURL)函数。

这是代码:

let messageBody = "Hello World!"
let urlSafeBody = messageBody.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!
WKExtension.sharedExtension().openSystemURL(NSURL(string: "sms:&body=\(urlSafeBody)")!)
Run Code Online (Sandbox Code Playgroud)