Come posso aprire l'app Messaggi sullo schermo di composizione, con il corpo del messaggio precaricato con un testo specifico?Come posso comporre un messaggio a livello di codice?
risposta
Grazie a @ Jatin per trovare la funzione openSystemURL(url: NSURL)
.
Ecco il codice:
let messageBody = "Hello World!"
let urlSafeBody = messageBody.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!
WKExtension.sharedExtension().openSystemURL(NSURL(string: "sms:&body=\(urlSafeBody)")!)
sono sicuro che è qualcosa di stupido, ma io non sto ottenendo questo codice funzioni. Quando lo eseguo, mostra questo errore: errore fatale: inaspettatamente trovato nil mentre scartando un valore facoltativo. Come è urlSafeBody nil ?! – Charlie
Non è 'urlSafeBody' che è nullo. Stai forzando l'estrazione di 'NSURL', che risulta essere nullo perché la sua stringa di URL non è corretta. Vedi [la mia risposta] (http://stackoverflow.com/a/36567031/4151918) per i dettagli. –
Benjy's answer is almost correct, ma ha un problema.
Poiché urlSafeBody
non è da scartare, rese stringa di interpolazione
sms:&body=Optional("Hello%20World!")
che sta causando NSURL
inizializzazione per tornare zero, poiché la stringa URL non valido.
Ecco un esempio funzionante che scartano condizionalmente gli optionals. Questo rimuove qualsiasi possibilità di crash relativi a nil optionals che vengono forzati.
let messageBody = "Hello World!"
let urlSafeBody = messageBody.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLHostAllowedCharacterSet())
if let urlSafeBody = urlSafeBody, url = NSURL(string: "sms:&body=\(urlSafeBody)") {
WKExtension.sharedExtension().openSystemURL(url)
}
@RMenke ho controllato se MessageUI era disponibile per watchos (non lo è), e sembrava per eventuali strutture che potrebbero essere l'equivalente, ma è venuto a mani vuote. –
whereSe stai attivando questo da, puoi richiamare l'apertura di questo url: sms: 123-456-8900, ma non penso che tu possa popolare un messaggio! Https: //developer.apple.com/library/watchos/ featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html – Jatin
@ Jatin 1) Non credo che sia possibile aprire collegamenti su Apple Watch (l'applicazione UIA non sembra essere disponibile). 2) So che è possibile popolare il messaggio, uso baca che ho visto fare. –