Czy ktoś wie, czy jest to możliwe i jak programowo wysłać SMS z iPhone
oficjalnego SDK / Cocoa Touch?
ios
objective-c
cocoa-touch
sms
Nitin Gohel
źródło
źródło
tools->script editor
i we wniosku POST użyćMailApp.sendEmail
interfejsu API, aby wysłać e-mail na numer telefonu. att's to [email protected], tmobile's to [email protected] Myślę, że (WSZYSTKO ZA DARMO)Odpowiedzi:
Ograniczenia
Jeśli możesz wysłać SMS-a w ramach programu na iPhonie, będziesz mógł pisać gry spamujące osoby w tle. Jestem pewien, że naprawdę chcesz otrzymywać spam od znajomych: „Wypróbuj tę nową grę! Roxxers mój boxxers, a twoje też będzie! Roxxersboxxers.com !!!! Jeśli zarejestrujesz się teraz dostaniesz 3200 RB zwrotnica!!"
Apple ma ograniczenia dotyczące automatycznych (lub nawet częściowo zautomatyzowanych) operacji SMS i wybierania numerów. (Wyobraź sobie, że zamiast tego gra wybrała numer 911 o określonej porze dnia)
Najlepszym rozwiązaniem jest skonfigurowanie pośredniego serwera w Internecie, który korzysta z usługi wysyłania SMS-ów online i wysyłanie wiadomości SMS tą drogą, jeśli potrzebujesz pełnej automatyzacji. (tzn. twój program na iPhonie wysyła pakiet UDP na twój serwer, który wysyła prawdziwy SMS)
Aktualizacja iOS 4
Jednak iOS 4 umożliwia teraz
viewController
importowanie do aplikacji. Po wypełnieniu pól SMS użytkownik może zainicjować wysyłanie wiadomości SMS w kontrolerze. W przeciwieństwie do formatu URL „SMS: ...” pozwala to aplikacji pozostać otwartymi i umożliwia wypełnienie pól „ do” i „ body” . Możesz nawet podać wielu odbiorców.Zapobiega to wysyłaniu przez aplikacje automatycznych wiadomości SMS bez wyraźnej wiedzy użytkownika. Nadal nie można wysyłać w pełni zautomatyzowanych wiadomości SMS z samego iPhone'a, wymaga to interakcji użytkownika. Ale to pozwala przynajmniej wypełnić wszystko i pozwala uniknąć zamykania aplikacji.
MFMessageComposeViewController klasa jest dobrze udokumentowany i samouczki pokazać, jak łatwo jest do wdrożenia.
Aktualizacja iOS 5
iOS 5 zawiera wiadomości dla iPoda touch i iPada, więc chociaż sam jeszcze tego nie przetestowałem, być może wszystkie urządzenia iOS będą mogły wysyłać SMS-y za pośrednictwem MFMessageComposeViewController. W takim przypadku Apple uruchamia serwer SMS, który wysyła wiadomości w imieniu urządzeń, które nie mają modemu komórkowego.
Aktualizacja iOS 6
Brak zmian w tej klasie.
Aktualizacja iOS 7
Możesz teraz sprawdzić, czy używany przez Ciebie nośnik wiadomości zaakceptuje temat lub załączniki oraz jakiego rodzaju załączniki będzie akceptował. Możesz edytować temat i dodawać załączniki do wiadomości, o ile pozwala na to medium.
Aktualizacja iOS 8
Brak zmian w tej klasie.
Aktualizacja iOS 9
Brak zmian w tej klasie.
Aktualizacja iOS 10
Brak zmian w tej klasie.
Aktualizacja iOS 11
Brak istotnych zmian w tej klasie
Ograniczenia do tej klasy
Pamiętaj, że to nie zadziała na telefonach bez iOS 4 i nie będzie działać na iPodzie touch ani iPadzie, z wyjątkiem być może na iOS 5. Przed użyciem tego urządzenia musisz wykryć ograniczenia urządzenia i iOS kontroler lub ryzyko ograniczenia aplikacji do ostatnio zaktualizowanych 3G, 3GS i 4 iPhone'ów.
Jednak serwer pośredni, który wysyła SMS-y, pozwoli każdemu z tych urządzeń iOS wysyłać SMS-y, o ile mają one dostęp do Internetu, więc nadal może być lepszym rozwiązaniem dla wielu aplikacji. Alternatywnie skorzystaj z obu i wracaj do internetowej usługi SMS tylko wtedy, gdy urządzenie jej nie obsługuje.
źródło
Oto poradnik, który ma dokładnie to, czego szukasz: the
MFMessageComposeViewController
.http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
Głównie:
I link do dokumentów.
https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller
źródło
MFMessageComposeViewController *controller = ...
wewnątrz bloku if. (metoda klasy nie musi mieć instancji do wykonania testu)http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
mówi „502 Bad Gateway” na moim laptopie. Może link jest zepsuty.#import <MessageUI/MessageUI.h>
w pliku nagłówkaMFMessageComposeViewControllerDelegate
iUINavigationControllerDelegate
IBAction
metodzie zadeklaruj przykładMFMessageComposeViewController
powiedzmessageInstance
[MFMessageComposeViewController canSendText]
w warunku if, zwraca wartość Tak / NiePod
if
warunkiem wykonaj następujące czynności:Najpierw ustaw ciało dla
messageInstance
:Następnie określ adresatów wiadomości jako:
Ustaw pełnomocnika do wiadomości jako:
W ostatniej linii zrób to:
źródło
presentModalViewController:animated:
jest przestarzała; użyjpresentViewController:animated:completion:
zamiast tego. Pamiętaj również, aby zdefiniować metodę delegowania,- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
jeśli chcesz poznać wyniki.Możesz użyć
sms:[target phone number]
adresu URL, aby otworzyć aplikację SMS, ale nic nie wskazuje na to, jak napełnić treść SMS tekstem.źródło
Jednym z systemów komunikacji między procesami w MacOS jest XPC. Ta warstwa systemowa została opracowana do komunikacji międzyprocesowej w oparciu o transfer struktur plist za pomocą libSystem i uruchomiona. W rzeczywistości jest to interfejs, który pozwala zarządzać procesami poprzez wymianę takich struktur, jak słowniki. Ze względu na dziedziczność, iOS 5 posiada również ten mechanizm.
Być może już rozumiesz, co mam na myśli przez to wprowadzenie. Tak, w iOS są usługi systemowe, które obejmują narzędzia do komunikacji XPC. I chcę zilustrować pracę z demonem do wysyłania SMS-ów. Należy jednak wspomnieć, że ta zdolność jest naprawiona w iOS 6, ale ma znaczenie w iOS 5.0–5.1.1. Jailbreak, Private Framework i inne nielegalne narzędzia nie są wymagane do jego wykorzystania. Potrzebny jest tylko zestaw plików nagłówkowych z katalogu / usr / include / xpc / *.
Jednym z elementów wysyłania SMS-ów w iOS jest usługa systemowa com.apple.chatkit, której zadania obejmują generowanie, zarządzanie i wysyłanie krótkich wiadomości tekstowych. Dla ułatwienia kontroli ma publicznie dostępny port komunikacyjny com.apple.chatkit.clientcomposeserver.xpc. Korzystając z podsystemu XPC, możesz generować i wysyłać wiadomości bez zgody użytkownika.
Spróbujmy utworzyć połączenie.
Teraz mamy połączenie XPC myConnection ustawione na usługę wysyłania wiadomości SMS. Jednak konfiguracja XPC umożliwia tworzenie zawieszonych połączeń - musimy wykonać jeszcze jeden krok w celu aktywacji.
Połączenie zostało aktywowane. W tym momencie iOS 6 wyświetli komunikat w dzienniku telefonu, że ten rodzaj komunikacji jest zabroniony. Teraz musimy wygenerować słownik podobny do xpc_dictionary z danymi wymaganymi do wysłania wiadomości.
Pozostało niewiele: wyślij wiadomość do portu XPC i upewnij się, że została dostarczona.
To wszystko. SMS wysłany.
źródło
Dodaj MessageUI.Framework i użyj następującego kodu
I wtedy:
i metoda delegowania -
źródło
Możesz użyć tego podejścia:
iOS automatycznie przejdzie z aplikacji do strony tworzenia wiadomości w aplikacji wiadomości. Ponieważ schemat adresu URL zaczyna się od sms :, jest to rozpoznawane jako typ rozpoznawany przez aplikację wiadomości i uruchamiający go.
źródło
źródło
Postępuj zgodnie z tymi procedurami
1. Dodaj
MessageUI.Framework
do projektu2) Import
#import <MessageUI/MessageUI.h>
do pliku .h.3) Skopiuj ten kod do wysyłania wiadomości
4 Zastosuj
delegate
metodę, jeśli chcesz.Run And GO!
źródło
[self dismissViewControllerAnimated:YES completion:nil];
wewnątrzmessageComposeViewController: didFinishWithResult:
metody wywołania zwrotnego. W przeciwnym razie po prostu się tam zawiesi.Oto szybka wersja kodu do wysyłania wiadomości SMS w systemie iOS. Pamiętaj, że działa tylko na prawdziwych urządzeniach. Kod przetestowany w iOS 7+. Możesz przeczytać więcej tutaj .
1) Utwórz nową klasę, która dziedziczy MFMessageComposeViewControllerDelegate i NSObject:
2) Jak korzystać z tej klasy:
źródło
W iOS 4 istnieje klasa, która obsługuje wysyłanie wiadomości z treścią i adresatami z Twojej aplikacji. Działa tak samo jak wysyłanie poczty. Dokumentację można znaleźć tutaj: tekst linku
źródło
źródło
// metoda wywołania z nazwą i numerem.
}
// Metoda wysyłania wiadomości
źródło
Jeśli chcesz, możesz użyć prywatnego frameworka,
CoreTelephony
który nazywał sięCTMessageCenter
class. Istnieje kilka metod wysyłania SMS-ów.źródło
Użyj tego:
źródło
To byłby najlepszy i krótki sposób na zrobienie tego.
źródło
Możesz przedstawić MFMessageComposeViewController, który może wysyłać SMS-y, ale z monitem użytkownika (stuknie przycisk wysyłania). Nie można tego zrobić bez zgody użytkownika. W systemie iOS 11 możesz utworzyć rozszerzenie, które może być filtrem dla wiadomości przychodzących, informując iOS, czy jest spamem, czy nie. Nic więcej nie można zrobić za pomocą SMS-a
źródło
Musisz użyć MFMessageComposeViewController jeśli chcesz pokazać tworzenie i wysyłanie wiadomości we własnej aplikacji.
W przeciwnym razie możesz użyć metody sharedApplication .
źródło