2

How can you setup an app that will ask for permission to access contacts before pulling up the Mail Composer? I know it is fairly recent that apps will do this.

4

3 に答える 3

1

Apple はMFMailComposeViewController組み込みのユーザーの連絡先へのアクセス権を提供しているため、アクセス権を付与する必要はありません。ユーザーの連絡先を別の場所で使用する場合は、Address Book Programming Guideを参照してください。

于 2012-06-22T20:26:58.273 に答える
0

あなたが何をしようとしているのかわからないので、ここに簡単な例を示します。「Access Contacts」という UIButton があります。ボタンをクリックすると、ボタンでメソッドが実行されます...これを generatePopover と呼びましょう。generatePopover は、連絡先へのアクセス許可を求めるステートメントを含む UIPopOverController を作成する必要があります。このビューには、承認と拒否の 2 つのボタンがあります。辞退は何もしませんが、承諾すると先に進み、メールコントローラーを引き上げることができます。

ポップオーバー コントローラー ページへのリンクは次のとおりです

于 2012-06-22T20:37:43.153 に答える
0

次のようなことができます。

//Header (.h)
@interface yourClass : superClass <UIAlertViewDelegate>
@property (nonatomic) BOOL alertShown;
@property (nonatomic) BOOL permissionGranted;

//Implementation (.m)
@synthesize alertShown, permissionGranted;

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

    if(buttonIndex == 1){

        self.permissionGranted = YES;
    }
    /*If you weren't sure what index the "Yes" button was at, you could do this instead:
    if(buttonIndex == alertView.firstOtherButtonIndex){

        self.permissionGranted = YES;
    }
    Or this:
    if([buttonTitleAtIndex:buttonIndex isEqualToString:@"Yes"]){

        self.permissionGranted = YES;
    }*/
}

-(void)composeMail{
    if(!self.alertShown){

         UIAlertView *permissionsAlert = [[UIAlertView alloc] initWithTitle:@"Permission"
                                                              message:@"Permission to access contacts?"
                                                             delegate:self
                                                    cancelButtonTitle:@"No"
                                                    otherButtonTitles: @"Yes"];
        [permissionsAlert show];
    }
    if(self.alertShown && self.permissionGranted){

        //access mail/contacts
    }
}
//viewDidLoad
self.alertShown = NO;
self.permissionGranted = NO;

調べたり調べたりせずに打ち込んだだけなので、どこか間違っているかもしれません。とにかく、これが役に立てば幸いです!

于 2012-06-23T00:21:57.053 に答える