Comment programmer l'envoi de SMS sur l'iPhone?
Quelqu'un sait si c'est possible, et comment, pour programmer l'envoi d'un SMS de la iPhone
, avec le SDK officiel /Cocoa Touch?
- dans Ios 4, Vous pouvez envoyer des sms avec le code, mais le problème, c'est que votre demande sera fermé
- Si vous utilisez le SDK officiel n'est pas une exigence pour les autres, j'ai écrit ce post pour montrer comment faire cela à l'aide de Twilio: twilio.com/blog/2016/11/...
- vous pouvez créer une feuille de calcul google de votre gmail, les champs que vous voulez, alors ne
tools->script editor
et après la demande d'utilisationMailApp.sendEmail
api pour envoyer des courriels à un numéro de téléphone. att est [email protected], tmobile est [email protected] je pense (TOUT est GRATUIT)
Vous devez vous connecter pour publier un commentaire.
Restrictions
Si vous pouviez envoyer un SMS à l'intérieur d'un programme sur l'iPhone, vous serez en mesure d'écrire des jeux qui spam les gens en arrière-plan. Je suis sûr que vous voulez vraiment avoir des spams de vos amis, "Essayer ce nouveau jeu! Il roxxers mon boxxers, et la vôtre sera trop! roxxersboxxers.com!!!! Si vous vous inscrivez maintenant, vous aurez de 3 200 RB points!!"
Apple a des restrictions pour automatisée (ou même partiellement automatisé) de SMS et de numérotation des opérations. (Imaginez si le jeu au lieu composé le 911, à un moment particulier de la journée)
Votre meilleur pari est de mettre en place un serveur intermédiaire sur l'internet qui utilise une ligne d'envoi de SMS service et envoyer des SMS via cette voie si vous avez besoin d'automatisation complète. (c'est à dire, votre programme sur l'iPhone envoie un paquet UDP à votre serveur, qui envoie le réel SMS)
iOS 4 mise à Jour
iOS 4, cependant, offre désormais un
viewController
vous pouvez l'importer dans votre application. Vous préremplir le SMS champs, puis l'utilisateur peut initier l'envoi de SMS à l'intérieur du contrôleur. Contrairement à l'utilisation de la fonction "SMS:..." format de l'url, cela permet à votre application de rester ouvert, et permet de remplir les deux à et la corps champs. Vous pouvez même spécifier plusieurs destinataires.Cela empêche les applications de l'envoi automatisé de SMS sans le consentement explicite de l'utilisateur au courant de ça. Vous ne pouvez toujours pas envoyer entièrement automatisé de SMS à partir de l'iPhone lui-même, il nécessite une certaine interaction avec l'utilisateur. Mais cela permet au moins de vous renseigner tout, et évite la fermeture de l'application.
La MFMessageComposeViewController classe est bien documenté, et tutoriels montrer comment il est facile à mettre en œuvre.
iOS 5 mise à Jour
iOS 5 comprend de messagerie pour les iPod touch et iPad, alors que je n'ai pas encore testé moi-même, il se peut que tous les appareils iOS seront en mesure d'envoyer des SMS via MFMessageComposeViewController. Si c'est le cas, Apple est en cours d'exécution un SMS à un serveur qui envoie des messages au nom de périphériques qui ne disposent pas d'un modem cellulaire.
mise à Jour iOS 6
Aucun changement à cette classe.
iOS 7 mise à Jour
Vous pouvez maintenant vérifier pour voir si le message de média que vous utilisez accepter un objet ou des pièces jointes, et quels types de pièces jointes qu'il accepte. Vous pouvez modifier le sujet et d'ajouter des pièces jointes au message, lorsque le support le permet.
iOS 8 mise à Jour
Aucun changement à cette classe.
iOS 9 mise à Jour
Aucun changement à cette classe.
iOS 10 mise à Jour
Aucun changement à cette classe.
iOS 11 mise à Jour
Pas de changements importants à cette classe
Les limites de cette classe
Gardez à l'esprit que cela ne fonctionne pas sur les téléphones sans iOS 4, et il ne fonctionnera pas sur l'iPod touch ou de l'iPad, à l'exception, peut-être, sous iOS 5. Vous devez détecter le périphérique iOS et les limites avant l'utilisation de ce contrôleur, au risque de restreindre votre application à récemment mis à niveau 3G, 3GS et iphone 4.
Cependant, un serveur intermédiaire qui envoie des SMS permettra à toutes et tous de ces appareils iOS afin d'envoyer des SMS tant qu'ils ont accès à l'internet, de sorte qu'il peut être encore la meilleure solution pour de nombreuses applications. Alternativement, utilisez à la fois, et seulement de revenir à une ligne de service SMS lorsque l'appareil ne le supporte pas.
Voici un tutoriel qui fait exactement ce que vous cherchez: le
MFMessageComposeViewController
.http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
Essentiellement:
Et un lien vers les docs.
https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller
MFMessageComposeViewController *controller = ...
à l'intérieur du bloc if. (la méthode de la classe n'a pas besoin d'avoir une instance pour faire le test)http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
dit "502 Bad Gateway" sur mon ordinateur portable. Peut-être que le lien est rompu.#import <MessageUI/MessageUI.h>
dans votre fichier d'en-têteMFMessageComposeViewControllerDelegate
&UINavigationControllerDelegate
IBAction
méthode de déclarer instance deMFMessageComposeViewController
diremessageInstance
[MFMessageComposeViewController canSendText]
dans une condition if, il va revenir Oui/NonDans le
if
condition de faire ceux-ci:Premier ensemble du corps pour votre
messageInstance
comme:Ensuite décider de les destinataires du message comme:
Définition d'un délégué de votre messageInstance comme:
Dans la dernière ligne de ce faire:
presentModalViewController:animated:
est obsolète; utilisationpresentViewController:animated:completion:
à la place. Aussi, n'oubliez pas de définir la méthode du délégué- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
si vous voulez savoir les résultats.Vous pouvez utiliser un
sms:[target phone number]
URL pour ouvrir l'application SMS, mais il n'y a pas d'indications sur la façon de pré-remplir un SMS avec le texte.L'un des systèmes de communication inter-processus dans MacOS est XPC. Cette couche système a été développé pour la communication inter-processus, basée sur le transfert de plist structures à l'aide de libSystem et launchd. En fait, c'est une interface qui permet de gérer les processus via l'échange de ces structures comme des dictionnaires. En raison de l'hérédité, iOS 5 possède ce mécanisme.
Vous pouvez déjà comprendre ce que je veux dire par cette introduction. Yep, il y a les services système dans iOS qui comprennent des outils pour XPC communication. Et je tiens à illustrer le travail avec un démon pour l'envoi de SMS. Toutefois, il convient de mentionner que cette capacité est fixée dans iOS 6, mais il est pertinent pour iOS 5.0—5.1.1. Jailbreak, Cadre Privé, et d'autres outils illégales ne sont pas requises pour son exploitation. Seulement l'ensemble des fichiers d'en-tête à partir du répertoire /usr/include/xpc/* sont nécessaires.
L'un des éléments pour l'envoi de SMS dans iOS est le système de service de com.apple.chatkit, les tâches incluent la production, de la gestion, et l'envoi de messages texte courts. Pour la facilité de contrôle, il est accessible au public du port de communication com.apple.chatkit.clientcomposeserver.xpc. À l'aide de la XPC sous-système, vous pouvez générer et envoyer des messages sans l'autorisation de l'utilisateur.
Eh bien, nous allons essayer de créer une connexion.
Maintenant, nous avons le XPC connexion maconnexion mis au service d'envoi de SMS. Cependant, XPC configuration permet la création de suspension de connexions —nous besoin de faire un pas de plus pour l'activation.
La connexion est activée. Juste à ce moment iOS 6 affiche un message dans le téléphone journal que ce type de communication est interdite. Maintenant, nous avons besoin de générer un dictionnaire similaire à xpc_dictionary avec les données requises pour l'envoi de message.
Peu à gauche: envoyer le message à l'XPC port et assurez-vous qu'il est livré.
C'est tout. SMS envoyé.
Ajouter le MessageUI.Cadre et utiliser le code suivant
Et puis:
et le délégué de la méthode
Vous pouvez utiliser cette approche:
iOS sera automatiquement accédez à partir de votre application à l'app messages, le message de la composition de la page. Depuis le schéma de l'URL commence par sms:, c'est identifié comme un type qui est reconnu par l'application messages et la lance.
Suivez ces procédures
1 .Ajouter
MessageUI.Framework
de projet2 . Importation
#import <MessageUI/MessageUI.h>
dans .h fichier.3 . Copiez ce code pour l'envoi de message
4 . Mettre en œuvre
delegate
méthode si vous le souhaitez.Courir Et ALLER!
[self dismissViewControllerAnimated:YES completion:nil];
à l'intérieur demessageComposeViewController: didFinishWithResult:
méthode de rappel. Sinon il faudra juste s'y reposent.Ici est la Swift version de code pour envoyer des SMS en iOS. Veuillez noter qu'il ne fonctionne que dans les dispositifs réels. Code testé dans iOS 7+. Vous pouvez en lire plus ici.
1) Créer une nouvelle Classe qui hérite de MFMessageComposeViewControllerDelegate et NSObject:
2) Comment utiliser cette classe:
Il y a une classe dans iOS 4 qui prend en charge l'envoi de messages avec des corps et des récipiendaires à partir de votre application. Il fonctionne de la même que l'envoi de mail. Vous pouvez trouver de la documentation ici: texte du lien
//appel de la méthode avec le nom et le numéro.
}
//Méthode pour l'envoi de message
Si vous le souhaitez, vous pouvez utiliser le cadre privé
CoreTelephony
qui appelleCTMessageCenter
classe. Il existe quelques méthodes pour envoyer des sms.Utiliser ceci:
Ce serait la meilleure, de court et de moyen de le faire.
Vous pouvez présenter MFMessageComposeViewController, qui permet d'envoyer des SMS, mais avec d'invite utilisateur(il tape bouton "envoyer"). Aucun moyen de le faire sans autorisation de l'utilisateur. Sur iOS 11, vous pouvez faire une extension, qui peut être comme filtre de messages entrants , disant iOS soit du spam ou non. Rien de plus avec SMS ne peut pas être fait
Vous devez utiliser le MFMessageComposeViewController si vous souhaitez afficher de créer et d'envoyer le message dans votre propre application.
Sinon, vous pouvez utiliser le sharedApplication méthode.