Est-ce que quelqu'un sait s'il est possible, et comment, d'envoyer par SMS un SMS depuis le iPhone
, avec le SDK / Cocoa Touch officiel?
ios
objective-c
cocoa-touch
sms
Nitin Gohel
la source
la source
tools->script editor
et dans une demande POST utiliser l'MailApp.sendEmail
api pour envoyer un e-mail à un numéro de téléphone. att est [email protected], tmobile est [email protected] je pense (TOUT GRATUIT)Réponses:
Restrictions
Si vous pouviez envoyer un SMS dans un programme sur l'iPhone, vous pourrez écrire des jeux qui spamment les gens en arrière-plan. Je suis sûr que vous voulez vraiment avoir des spams de vos amis, "Essayez ce nouveau jeu! Il roxxers mes boxxers, et le vôtre aussi! Roxxersboxxers.com !!!! Si vous vous inscrivez maintenant, vous obtiendrez 3200 RB points!!"
Apple a des restrictions pour les opérations automatisées (ou même partiellement automatisées) de SMS et de numérotation. (Imaginez si le jeu composait plutôt le 911 à une heure particulière de la journée)
Votre meilleur pari est de mettre en place un serveur intermédiaire sur Internet qui utilise un service d'envoi de SMS en ligne et d'envoyer le SMS via cette route si vous avez besoin d'une automatisation complète. (c'est-à-dire que votre programme sur l'iPhone envoie un paquet UDP à votre serveur, qui envoie le vrai SMS)
Mise à jour iOS 4
Cependant, iOS 4 propose désormais un outil que
viewController
vous pouvez importer dans votre application. Vous préremplissez les champs SMS, puis l'utilisateur peut lancer l'envoi de SMS dans le contrôleur. Contrairement à l'utilisation du format d'URL "SMS: ...", cela permet à votre application de rester ouverte et de remplir à la fois les champs to et body . Vous pouvez même spécifier plusieurs destinataires.Cela empêche les applications d'envoyer des SMS automatisés sans que l'utilisateur ne le sache explicitement. Vous ne pouvez toujours pas envoyer de SMS entièrement automatisé depuis l'iPhone lui-même, cela nécessite une certaine interaction de l'utilisateur. Mais cela vous permet au moins de tout remplir et évite de fermer l'application.
La classe MFMessageComposeViewController est bien documentée et les didacticiels montrent à quel point il est facile à implémenter.
Mise à jour iOS 5
iOS 5 inclut la messagerie pour les appareils iPod touch et iPad, donc même si je n'ai pas encore testé cela moi-même, il se peut que tous les appareils iOS puissent envoyer des SMS via MFMessageComposeViewController. Si tel est le cas, Apple exécute un serveur SMS qui envoie des messages au nom d'appareils qui ne disposent pas d'un modem cellulaire.
Mise à jour iOS 6
Aucun changement à cette classe.
Mise à jour iOS 7
Vous pouvez maintenant vérifier si le support de message que vous utilisez acceptera un objet ou des pièces jointes, et quel type de pièces jointes il acceptera. Vous pouvez modifier le sujet et ajouter des pièces jointes au message, lorsque le support le permet.
Mise à jour iOS 8
Aucun changement à cette classe.
Mise à jour iOS 9
Aucun changement à cette classe.
Mise à jour iOS 10
Aucun changement à cette classe.
Mise à jour iOS 11
Aucun changement significatif à cette classe
Limitations de cette classe
Gardez à l'esprit que cela ne fonctionnera pas sur les téléphones sans iOS 4 et ne fonctionnera pas sur l'iPod touch ou l'iPad, sauf, peut-être, sous iOS 5. Vous devez soit détecter l'appareil et les limitations iOS avant d'utiliser ce contrôleur, ou risquez de restreindre votre application aux iPhones 3G, 3GS et 4 récemment mis à niveau.
Cependant, un serveur intermédiaire qui envoie des SMS permettra à tous ces appareils iOS d'envoyer des SMS tant qu'ils auront accès à Internet, ce qui peut donc être une meilleure solution pour de nombreuses applications. Vous pouvez également utiliser les deux et ne recourir à un service SMS en ligne que lorsque l'appareil ne le prend pas en charge.
la source
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 documents.
https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller
la source
MFMessageComposeViewController *controller = ...
intérieur du bloc if. (la méthode de 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/
indique "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, déclarez l'instance deMFMessageComposeViewController
saymessageInstance
[MFMessageComposeViewController canSendText]
dans un état if, il retournera Oui / NonDans la
if
condition, faites-les:Premier corps défini pour votre en
messageInstance
tant que:Choisissez ensuite les destinataires du message comme:
Définissez un délégué à votre messageInstance comme:
Dans la dernière ligne, procédez comme suit:
la source
presentModalViewController:animated:
est obsolète; utiliser à lapresentViewController:animated:completion:
place. N'oubliez pas non plus de définir la méthode déléguée- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
si vous souhaitez connaître les résultats.Vous pouvez utiliser une
sms:[target phone number]
URL pour ouvrir l'application SMS, mais rien n'indique comment préremplir un corps SMS avec du texte.la source
L'un des systèmes de communication inter-processus sous MacOS est XPC. Cette couche système a été développée pour la communication inter-processus basée sur le transfert de structures plist à l'aide de libSystem et launchd. En fait, c'est une interface qui permet de gérer des processus via l'échange de structures telles que des dictionnaires. En raison de l'hérédité, iOS 5 possède également ce mécanisme.
Vous comprenez peut-être déjà ce que je veux dire par cette introduction. Oui, il existe des services système dans iOS qui incluent des outils de communication XPC. Et je veux illustrer le travail avec un démon pour l'envoi de SMS. Cependant, il convient de mentionner que cette capacité est corrigée dans iOS 6, mais est pertinente pour iOS 5.0—5.1.1. Jailbreak, Private Framework et autres outils illégaux ne sont pas requis pour son exploitation. Seul l'ensemble des fichiers d'en-tête du répertoire / usr / include / xpc / * est nécessaire.
L'un des éléments de l'envoi de SMS dans iOS est le service système com.apple.chatkit, dont les tâches incluent la génération, la gestion et l'envoi de courts messages texte. Pour la facilité de contrôle, il dispose du port de communication accessible au public com.apple.chatkit.clientcomposeserver.xpc. À l'aide du sous-système XPC, vous pouvez générer et envoyer des messages sans l'approbation de l'utilisateur.
Eh bien, essayons de créer une connexion.
Nous avons maintenant la connexion XPC myConnection définie au service d'envoi de SMS. Cependant, la configuration XPC prévoit la création de connexions suspendues - nous devons faire un pas de plus pour l'activation.
La connexion est activée. À ce moment, iOS 6 affichera un message dans le journal téléphonique indiquant que ce type de communication est interdit. Nous devons maintenant générer un dictionnaire similaire à xpc_dictionary avec les données requises pour l'envoi du message.
Il ne reste plus grand chose: envoyez le message au port XPC et assurez-vous qu'il est bien livré.
C'est tout. SMS envoyé.
la source
Ajoutez le MessageUI.Framework et utilisez le code suivant
Et alors:
et la méthode déléguée -
la source
Vous pouvez utiliser cette approche:
iOS naviguera automatiquement de votre application vers la page de composition des messages de l'application Messages. Étant donné que le schéma de l'URL commence par sms :, celui-ci est identifié comme un type reconnu par l'application de messages et le lance.
la source
la source
Suivez ces procédures
1 .Ajouter
MessageUI.Framework
au projet2. Importez
#import <MessageUI/MessageUI.h>
dans un fichier .h.3. Copiez ce code pour envoyer un message
4. Implémentez la
delegate
méthode si vous le souhaitez.Courez et partez!
la source
[self dismissViewControllerAnimated:YES completion:nil];
intérieurmessageComposeViewController: didFinishWithResult:
. Sinon, il y restera.Voici la version Swift du code pour envoyer des SMS dans iOS. Veuillez noter que cela ne fonctionne que sur des appareils réels. Code testé dans iOS 7+. Vous pouvez en lire plus ici .
1) Créez une nouvelle classe qui hérite de MFMessageComposeViewControllerDelegate et NSObject:
2) Comment utiliser cette classe:
la source
Il existe une classe dans iOS 4 qui prend en charge l'envoi de messages avec le corps et les destinataires de votre application. Cela fonctionne de la même manière que l'envoi de courrier. Vous pouvez trouver la documentation ici: texte du lien
la source
la source
// méthode d'appel avec nom et numéro.
}
// Méthode d'envoi du message
la source
Si vous le souhaitez, vous pouvez utiliser le framework privé
CoreTelephony
qui a appelé laCTMessageCenter
classe. Il existe plusieurs méthodes pour envoyer des SMS.la source
Utilisez ceci:
la source
Ce serait le meilleur et le plus court moyen de le faire.
la source
Vous pouvez présenter MFMessageComposeViewController, qui peut envoyer des SMS, mais avec une invite de l'utilisateur (il appuie sur le bouton Envoyer). Aucun moyen de le faire sans l'autorisation de l'utilisateur. Sur iOS 11, vous pouvez créer une extension, qui peut être comme un filtre pour les messages entrants, indiquant à iOS son spam ou non. Rien de plus avec SMS ne peut pas être fait
la source
Vous devez utiliser le MFMessageComposeViewController si vous souhaitez montrer la création et l'envoi du message dans votre propre application.
Sinon, vous pouvez utiliser la méthode sharedApplication .
la source