2013-02-14 4 views
10

자선 기부금을 보내는 iOS 앱을 제출하려고합니다. 과거에는 문제없이 여러 가지 작업을 수행했습니다. 그러나 애플은 더 이상 우리의 접근 방식을 받아들이 려하지 않고 우리의 앱을 거부했다.iOS에서 메시지 앱을 실행하는 또 다른 방법이 있습니까? (기부금)

주장은 앱이 가이드 라인 21.2를 준수하지 않는다는 것입니다. 어느 것 :

21.2 기부금의 컬렉션은 사파리의 웹 사이트 또는 과거의 SMS

통해 수행해야하며,이 현재의 응용 프로그램에, 우리는에 MFMessageComposeViewController를 사용하는 MessageUI SMS 메시지를 작성하는 프레임 워크. 우리는 이것을 사용하기 때문에; 우리가 짧은 메시지에 기부하는 것이므로 메시지에 키워드를 쓸 수 있어야합니다.

보내기 SMS 메시지 : 해상도 센터에서 앞뒤로 약간의 (그리고 거부 분쟁) 나는 우리가 어떻게해야하는지에 대해 애플에서 얻을 수있는 가장입니다 후

앱 내에서 앱 스토어 가이드 라인을 준수하지 않을 수도 있습니다.

는 SMS 링크

는 기부를 메시지를 시작한다.

우리는 sms:URL scheme 특정 번호의 메시지 응용 프로그램을 실행하는 데 사용할 수 있지만, 그 방법은 우리가 필요한 키워드를 추가 할 수 없습니다.


그래서 질문입니다. 누군가가 메시지 앱을 시작하는 다른 방법을 알고 있습니까?

Google의 대체 옵션은 사용자에게 "YYYY to ZZZZ"이라는 사용자에게 경고 메시지를 보내고 사용자에게 SMS 메시지를 전달하는 것을 포기하는 것입니다.


업데이트 (2013년 3월 5일는) :

우리는이 같은 이유로 다시 거부 ... 우리의 경고 전용 대체 옵션을 다시 응용 프로그램을 다시 제출. 우리는 다시 애플과 경쟁하고있다.


업데이트 (2013년 3월 6일) : 명백한 설명 애플에 선미 메시지가 ... 앱에서 제출을 통과 한 후

.

내가 쓴 :

우리는 동의해야합니다. 앱에 자선 기부금을 모으는 기능은 앱에 포함되어 있지 않습니다. 사용자에게 기부 방법을 알려줍니다.

그래서; 동일한 문제가있는 경우 먼저 앱을 수정하기 전에 먼저 불만을 제기하는 것이 좋습니다.

답변

18

예와 기본적인 수준에 번호

: NO. 나는 문서를 살펴 봤는데 외부 적으로 메시지 앱을 호출 할 때 (오히려 실망스럽게도) 당신의 메시지에 대한 본문을 설정할 수 없다.

당신은 할 수 있습니다

  1. 열고 메시지 응용 프로그램

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]]; 
    
  2. 입력

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:+1234567890"]]; 
    

,536,913,632에 메시지 수 10

기타 복잡 : 예. 다음은 본문과 함께 SMS를 보내는 방법과 코드입니다. ModalView와 같은 메시지 앱과 똑같은 시각을 제공합니다. 참조 용 you can read the docs here.

  • 이 작업이 메시지를 보낼 수있는보기의 .H 이러한 추가 프로젝트에

  • 가져 MessageUI 프레임 워크

      은에 (내 경우 간단한에게의 단일 버튼으로보기).

      #import <MessageUI/MessageUI.h> 
      #import <MessageUI/MFMessageComposeViewController.h> 
      
    1. 유사해야 메시지를 보낼 수있는 중요한 코드 : 위의 코드는 문자를 보내거나 우리가 구현하지 않은으로보기를 취소하지 않습니다

      -(IBAction)sendSMS:(id)sender { 
      
          if([MFMessageComposeViewController canSendText]) { 
           MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
           controller.body = @"Hello"; 
           controller.recipients = [NSArray arrayWithObjects:@"+1234567890", nil]; 
           controller.messageComposeDelegate = self; 
           [self presentViewController:controller animated:YES completion:nil]; 
          } 
      } 
      

    messageComposeViewController:didFinishWithResult: 방법 -이 문서는 here으로 읽을 수 있습니다. 앱이 필요 당신이 (사례 1과)보기를 기각, 경고를 제시 할 수 있습니다 각각의 경우에

    - (void)messageComposeViewController:(MFMessageComposeViewController *)controller 
           didFinishWithResult:(MessageComposeResult)result { 
        switch(result) { 
         case MessageComposeResultCancelled: 
          // user canceled sms 
          [self dismissViewControllerAnimated:YES completion:nil]; 
          break; 
         case MessageComposeResultSent: 
          // user sent sms 
          //perhaps put an alert here and dismiss the view on one of the alerts buttons 
          break; 
         case MessageComposeResultFailed: 
          // sms send failed 
          //perhaps put an alert here and dismiss the view when the alert is canceled 
          break; 
         default: 
          break; 
        } 
    } 
    

    을, 또는 어떤이는 다음과 같이 표시됩니다.

    이 두 번째 방법은 승인을 받아야합니다. 그렇지 않으면 Apple에서 해당 문서를 제거해야합니다. 중요한 점은 canSendText if 문입니다. 이 (또는 didFinishWithResult의 경우 전환) 구현되지 않으면 애플은 확실히 애플 리케이션을 거부합니다.

  • +0

    두 번째 경로를 택했습니다. 거의 정확하게 당신이 묘사합니다. 그들은 여전히 ​​우리를 실패 시켰습니다. 우리가 다르게하는 유일한 것은 didFinishWithResult에 스위치 케이스가 없다는 것입니다. 결과에 관계없이 컨트롤러를 닫습니다. – Wex

    +0

    아, 나는 당신의 상황에 대해 많이 읽었으며, 애플이 변화를 꺼리는 이유 중 하나라고 생각합니다.앱 내부에있는 가짜 농장에서 물건을 사면 괜찮은 것 같습니다. 자선을 기부하지는 않지만 자선 단체에 기부하지 않는 것입니다. 나는 옵션을 기다렸다가 사용자에게 문구를 입력하도록 지시합니다. 아마도 텍스트를 클립 보드에 자동으로 복사하여 프로세스를보다 쉽고 사용자 친화적으로 만들 수 있습니다. – Patrick

    +0

    성가신 부분은 우리가 기부 앱으로 몇 번 전에 이런 방식으로 해냈다는 것입니다. 이제 우리 고객에게 애플이 마음의 변화를 가져 왔음을 설명해야합니다. 클립 보드 아이디어는 훌륭합니다. 그보다 더 많은 사용자 지시가 필요합니다. 생각을 환호합니다. – Wex

    4

    본문도 설정할 수 있지만 문자열을 이스케이프 처리해야합니다.

    NSString *sms = @"sms:+1234567890&body=This is the body."; 
    
    NSString *url = [sms stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 
    
    +0

    이것이 항상이 방법이''sms :'scheme을 사용했는지 확신 할 수 없습니다. ,하지만 지금은 그런 것처럼 보입니다. – Wex