누구든지 공식 SDK / 코코아 터치로 '아이폰'에서 프로그래밍 방식으로 SMS 를 보낼 수 있는지, 그리고 어떻게하는지 알고 있습니까?
제한 사항 ###
아이폰의 프로그램 내에서 SMS를 보낼 수 있다면, 백그라운드에서 사람들에게 스팸을 보내는 게임을 만들 수 있습니다. 친구로부터 스팸을 받고 싶으시다면, 이 새로운 게임을 사용해 보세요! 내 박서들을 괴롭히고, 여러분의 박서도 괴롭힐 것입니다! roxxersboxxers.com!!!! 지금 가입하시면 3,200 RB 포인트를 받으실 수 있습니다!!!&"
Apple은 자동(또는 부분적으로 자동화된) SMS 및 전화 걸기 작업에 대한 제한이 있습니다. (게임이 하루 중 특정 시간에 911에 전화를 걸었다고 상상해 보세요).
가장 좋은 방법은 인터넷에 온라인 SMS 전송 서비스를 사용하는 중간 서버를 설정하고 완전한 자동화가 필요한 경우 해당 경로를 통해 SMS를 전송하는 것입니다. (즉, iPhone의 프로그램이 서버로 UDP 패킷을 보내면 서버가 실제 SMS를 전송합니다.)
그러나 iOS 4는 이제 애플리케이션으로 가져올 수 있는 'viewController'를 제공합니다. SMS 필드를 미리 채우면 사용자가 컨트롤러 내에서 SMS 전송을 시작할 수 있습니다. 'SMS:...&...&...&...&...&...&...&...&...&...' URL 형식을 사용하는 것과 달리, 이 형식을 사용하면 애플리케이션을 계속 열어두고 받는 사람과 받는 사람 필드를 모두 채울 수 있습니다. 여러 명의 수신자를 지정할 수도 있습니다.
이렇게 하면 사용자가 명시적으로 인지하지 못한 상태에서 애플리케이션이 자동화된 SMS를 보내는 것을 방지할 수 있습니다. 여전히 iPhone 자체에서 완전 자동 SMS를 보낼 수는 없으며 일부 사용자 상호 작용이 필요합니다. 그러나 적어도 모든 것을 채울 수 있고 애플리케이션이 닫히는 것을 방지할 수 있습니다.
MFMessageComposeViewController]1 클래스는 잘 문서화되어 있으며, 튜토리얼을 통해 구현이 얼마나 쉬운지 확인할 수 있습니다.
iOS 5에는 아이팟 터치 및 아이패드 기기용 메시징이 포함되어 있으므로 아직 직접 테스트하지는 않았지만 모든 iOS 기기에서 MFMessageComposeViewController를 통해 SMS를 전송할 수 있을 것입니다. 이 경우 Apple은 셀룰러 모뎀이 없는 기기를 대신하여 메시지를 보내는 SMS 서버를 실행하고 있는 것입니다.
이 클래스에는 변경 사항이 없습니다.
이제 사용 중인 메시지 매체가 제목이나 첨부파일을 허용하는지 여부와 허용되는 첨부파일의 종류를 확인할 수 있습니다. 매체가 허용하는 경우 제목을 수정하고 메시지에 첨부파일을 추가할 수 있습니다.
이 클래스에는 변경된 사항이 없습니다.
이 클래스에는 변경 사항이 없습니다.
이 클래스에는 변경 사항이 없습니다.
이 클래스에 대한 ### 제한 사항
iOS 4가 없는 휴대폰에서는 작동하지 않으며, iOS 5를 제외한 아이팟 터치나 아이패드에서는 작동하지 않는다는 점에 유의하세요. 이 컨트롤러를 사용하기 전에 기기 및 iOS 제한 사항을 확인하거나 앱을 최근 업그레이드한 3G, 3GS 및 4 iPhone으로 제한해야 합니다.
그러나 SMS를 전송하는 중간 서버를 사용하면 인터넷에 액세스할 수 있는 한 이러한 모든 iOS 디바이스에서 SMS를 전송할 수 있으므로 많은 애플리케이션에 더 나은 솔루션이 될 수 있습니다. 또는 두 가지를 모두 사용하고 기기가 지원하지 않는 경우에만 온라인 SMS 서비스로 되돌아갈 수 있습니다.
이것은 자습서는 당근이지를 않는 너희는너희가 찾고 있다. 이 '마프메사게콤프로스비스콘트로예르'.
http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
기본적으로:
MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText])
{
controller.body = @"SMS message here";
controller.recipients = [NSArray arrayWithObjects:@"1(234)567-8910", nil];
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
}
이 문서 및 https://partner. microsoft.
https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller
메사그인스턴스트브로디 = @" 누구없어요 충스러웠으니 Shah";;
[누자이 arrayWithObjects:@";;; 87654321" 12345678" @" 전무했던] = 메사그인스턴스트레키피렌츠. 3. 데이터베이스에구성원을 메사그인스턴스 위임합니다 설정할 수 있다.
메사그인스턴스.메사게콤프로스델게이트 = 자체. 4. 마지막 행의 됩니다.
[자체 presentModalViewController:messageInstance 예 애니메이션된];
Macos 에서 스파스 프로세스 간 통신 시스템 중 하나가 있다. 프로세스 간 통신을 위해 개발된 이 시스템을 사용하여 리브시스템 프리스트 구조를 기반으로 레이어에는 전송 및 라운히드. 실제로 it 프로세스 관리 등 사전을 통해 이러한 구조를 교환할 수 있는 인터페이스입니다. 유전, iOS 5 보유하고 있기 때문에 이 메커니즘을 잘 알려져 있다.
무슨 말인지 뚭컻 이를 통해 이미 수 있습니다. 네, iOS 의 스파스 통신 시스템 서비스를 위한 도구를 포함하고 있다. 예시 작동합니까 디먼이 SMS 를 보낼 보고 싶습니다. 그러나 해야 할 문제가 해결된 것은 있을 수 있지만, 이 기능은 iOS 6 은 iOS 용 관련 5.0-5.1.1. 탈옥, 개인 프레임워크, 이에 대한 착취 등 불법 툴과도 필요하지 않습니다. 헤더 파일을 디렉토리에서 /usr/include/xpc/* 미디어만을 집합이 필요하다.
Ios 의 SMS 보내기 위한 하나의 요소가 포함된 서비스, 시스템이 코맥애플리샤킷 작업은 세대, 관리 및 보내는 문자메시지. 제어, 통신 포트가 코맥애플리샤킷.클리랑콤포세세르베리스프충 부드럽게가 대해 공개적으로 사용할 수 있다 스파스 서브시스템과 사용 및 메시지 보내기 user& 없이 생성할 수 있습니다 # 39 의 승인입니다.
뭐, let& 시도하시겠습니까 # 39 의 연결을 만드는.
xpc_connection_t myConnection;
dispatch_queue_t queue = dispatch_queue_create("com.apple.chatkit.clientcomposeserver.xpc", DISPATCH_QUEUE_CONCURRENT);
myConnection = xpc_connection_create_mach_service("com.apple.chatkit.clientcomposeserver.xpc", queue, XPC_CONNECTION_MACH_SERVICE_PRIVILEGED);
이제 우리는 미코네크션 스파스 연결 서비스 (sms) 로 보내는. 그러나 스파스 구성에서는 만들기 위해 뚜르산을 접속에만 - 단계에서 지원합니다활성화 한 발자국만 더 필요하다.
xpc_connection_set_event_handler(myConnection, ^(xpc_object_t event){
xpc_type_t xtype = xpc_get_type(event);
if(XPC_TYPE_ERROR == xtype)
{
NSLog(@"XPC sandbox connection error: %s\n", xpc_dictionary_get_string(event, XPC_ERROR_KEY_DESCRIPTION));
}
// Always set an event handler. More on this later.
NSLog(@"Received a message event!");
});
xpc_connection_resume(myConnection);
연결이 활성화되었습니다. 지금 이 순간, iOS 6 의 이런 유형의 통신이 금기한 전화 로그에서는 메시지가 표시됩니다. 이제 우리가 할 수 있는 데이터를 필요한 사전 유사물 발령합니다 xpc_dictionary 메시지 보내기).
NSArray *recipient = [NSArray arrayWithObjects:@"+7 (90*) 000-00-00", nil];
NSData *ser_rec = [NSPropertyListSerialization dataWithPropertyList:recipient format:200 options:0 error:NULL];
xpc_object_t mydict = xpc_dictionary_create(0, 0, 0);
xpc_dictionary_set_int64(mydict, "message-type", 0);
xpc_dictionary_set_data(mydict, "recipients", [ser_rec bytes], [ser_rec length]);
xpc_dictionary_set_string(mydict, "text", "hello from your application!");
조금 남아 있다. 이 교육은 포트과 smartupdate 스파스 메시지를 보냅니다.
xpc_connection_send_message(myConnection, mydict);
xpc_connection_send_barrier(myConnection, ^{
NSLog(@"The message has been successfully delivered");
});
다음 코드를 사용하여 메사게이지프라임보크 추가 및
#import <MessageUI/MessageUI.h>
다음:
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *messageComposer =
[[MFMessageComposeViewController alloc] init];
NSString *message = @"Your Message here";
[messageComposer setBody:message];
messageComposer.messageComposeDelegate = self;
[self presentViewController:messageComposer animated:YES completion:nil];
}
그리고 위임합니다 방법 -
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result {
[self dismissViewControllerAnimated:YES completion:nil];
}
이 방법을 사용할 수 있습니다.
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms:MobileNumber"]]
ios 는 자동으로 br> <, # 39 의 메시지 작성 호출이네요 app& 메시지를 실행하십시오 app 를 얻을 수 있습니다. # 39 의 구성표가 URL& 에스엠에스 시작하여, 이후 이 메시지를 통해 유형으로 식별됩니다 인식할 수 있는 앱 및 출시 거잖나.
'1' 메사게이지프라임보크 지아다 투영하려면! 입력하십시오. 이미지 여기에 설명을
이 코드를 복제본에 송신용입니다 메시지
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *messageComposer =
[[MFMessageComposeViewController alloc] init];
NSString *message = @"Message!!!";
[messageComposer setBody:message];
messageComposer.messageComposeDelegate = self;
[self presentViewController:messageComposer animated:YES completion:nil];
}
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
///your stuff here
[self dismissViewControllerAnimated:YES completion:nil];
}
실행하십시오 And GO!
//Add the Framework in .h file
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
//Set the delegate methods
UIViewController<UINavigationControllerDelegate,MFMessageComposeViewControllerDelegate>
//add the below code in .m file
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
MFMessageComposeViewController *controller =
[[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText])
{
NSString *str= @"Hello";
controller.body = str;
controller.recipients = [NSArray arrayWithObjects:
@"", nil];
controller.delegate = self;
[self presentModalViewController:controller animated:YES];
}
}
- (void)messageComposeViewController:
(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result
{
switch (result)
{
case MessageComposeResultCancelled:
NSLog(@"Cancelled");
break;
case MessageComposeResultFailed:
NSLog(@"Failed");
break;
case MessageComposeResultSent:
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
}
다음은 Swift 코드 버전 전송할지 에스엠에스 iOS 의. 이 점에 때만 desktopplatforms 실제 디바이스입니다. Ios 의 코드 테스트되었습니다 7+. Here 더 읽을 수 있습니다.
import Foundation
import MessageUI
class MessageComposer: NSObject, MFMessageComposeViewControllerDelegate {
// A wrapper function to indicate whether or not a text message can be sent from the user's device
func canSendText() -> Bool {
return MFMessageComposeViewController.canSendText()
}
// Configures and returns a MFMessageComposeViewController instance
func configuredMessageComposeViewController(textMessageRecipients:[String] ,textBody body:String) -> MFMessageComposeViewController {
let messageComposeVC = MFMessageComposeViewController()
messageComposeVC.messageComposeDelegate = self // Make sure to set this property to self, so that the controller can be dismissed!
messageComposeVC.recipients = textMessageRecipients
messageComposeVC.body = body
return messageComposeVC
}
// MFMessageComposeViewControllerDelegate callback - dismisses the view controller when the user is finished with it
func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) {
controller.dismissViewControllerAnimated(true, completion: nil)
}
}
func openMessageComposerHelper(sender:AnyObject ,withIndexPath indexPath: NSIndexPath) {
var recipients = [String]()
//modify your recipients here
if (messageComposer.canSendText()) {
println("can send text")
// Obtain a configured MFMessageComposeViewController
let body = Utility.createInvitationMessageText()
let messageComposeVC = messageComposer.configuredMessageComposeViewController(recipients, textBody: body)
// Present the configured MFMessageComposeViewController instance
// Note that the dismissal of the VC will be handled by the messageComposer instance,
// since it implements the appropriate delegate call-back
presentViewController(messageComposeVC, animated: true, completion: nil)
} else {
// Let the user know if his/her device isn't able to send text messages
self.displayAlerViewWithTitle("Cannot Send Text Message", andMessage: "Your device is not able to send text messages.")
}
}
- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
{
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
UIImage *ui =resultimg.image;
pasteboard.image = ui;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];
}
There is a 클래스에 메시지 보내기 (body) 와 함께 레시펜츠 ios 4 를 지원하는 응용 프로그램에서. 작동하잖아 동일합니까 메일 보내기. 여기에 문서를 찾을 수 있습니다. https://partner. 텍스트
//call 방법을 이용하여 이름 및 번호.
-(void)openMessageViewWithName:(NSString*)contactName withPhone:(NSString *)phone{
CTTelephonyNetworkInfo *networkInfo=[[CTTelephonyNetworkInfo alloc]init];
CTCarrier *carrier=networkInfo.subscriberCellularProvider;
NSString *Countrycode = carrier.isoCountryCode;
if ([Countrycode length]>0) //Check If Sim Inserted
{
[self sendSMS:msg recipientList:[NSMutableArray arrayWithObject:phone]];
}
else
{
[AlertHelper showAlert:@"Message" withMessage:@"No sim card inserted"];
}
}
//Method 송신용입니다 메시지
- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSMutableArray *)recipients{
MFMessageComposeViewController *controller1 = [[MFMessageComposeViewController alloc] init] ;
controller1 = [[MFMessageComposeViewController alloc] init] ;
if([MFMessageComposeViewController canSendText])
{
controller1.body = bodyOfMessage;
controller1.recipients = recipients;
controller1.messageComposeDelegate = self;
[self presentViewController:controller1 animated:YES completion:Nil];
}
}
이:
- (void)showSMSPicker
{
Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
if (messageClass != nil) {
// Check whether the current device is configured for sending SMS messages
if ([messageClass canSendText]) {
[self displaySMSComposerSheet];
}
}
}
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
//feedbackMsg.hidden = NO;
// Notifies users about errors associated with the interface
switch (result)
{
case MessageComposeResultCancelled:
{
UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sending canceled!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert1 show];
[alert1 release];
}
// feedbackMsg.text = @"Result: SMS sending canceled";
break;
case MessageComposeResultSent:
{
UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sent!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert2 show];
[alert2 release];
}
// feedbackMsg.text = @"Result: SMS sent";
break;
case MessageComposeResultFailed:
{
UIAlertView *alert3 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sending failed!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert3 show];
[alert3 release];
}
// feedbackMsg.text = @"Result: SMS sending failed";
break;
default:
{
UIAlertView *alert4 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS not sent!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert4 show];
[alert4 release];
}
// feedbackMsg.text = @"Result: SMS not sent";
break;
}
[self dismissModalViewControllerAnimated: YES];
}