0

アプリで写真にアクセスするために使用ALAssetsLibraryしていますが、アプリが最初に写真にアクセスしようとすると、位置情報サービスの許可が求められます。アプリが位置情報サービスではなく写真にアクセスしたいなど、そのアラートにカスタムメッセージを提供したいと思います。

Google とスタック オーバーフローで多くの検索を行いましたが、ユーザーが位置情報サービスのアクセス許可を拒否した後に解決策を見つけましたが、カスタム メッセージではなく、InstaCollage、Pic Jointer などの多くのアプリでこれを見てきました。

ピックジョインターアラート画像

4

3 に答える 3

3

できません (検索で見たことは間違いありません)。これはシステム メッセージであり、オーバーライドしたり回避したりすることはできません。言い換えれば、いいえはいいえを意味します。

于 2013-02-11T07:46:48.460 に答える
2

iOS 6 以降では、アラート ダイアログにカスタム テキストを追加できます (データの処理内容などを指定するため)。この説明テキストを設定するには、

NSPhotoLibraryUsageDescription

キーを Info.plist に移動し、値を表示するテキストに設定します。

開発者ドキュメントから:

NSPhotoLibraryUsageDescription (文字列 - iOS) は、アプリがユーザーの写真ライブラリにアクセスする理由を説明します。システムがユーザーにアクセスを許可するように求めるとき、この文字列がダイアログ ボックスの一部として表示されます。このキーは iOS 6.0 以降でサポートされています。

于 2013-02-14T22:52:10.390 に答える
0

あなたは一つのことをすることができます。

アプリケーションが読み込まれ、カスタムメッセージが表示されている間に、アプリケーションの位置情報サービスの設定を確認するだけです。

#import <CoreLocation/CoreLocation.h>

-(void)showAlertForLocationServiceEnabled{


    BOOL locationAllowed = [CLLocationManager locationServicesEnabled];

    if (locationAllowed == NO) {

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled!!!" 
                                                        message:@"Location Services is required for this application. Please enable Location Services" 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK" 
                                              otherButtonTitles:nil];
        [alert show];

    } 
}

また

-(void)checkAndNotifyLocationServiceAvailable{

    if (! ([CLLocationManager locationServicesEnabled]) || ( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)){

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled!!!" message:@"Location Services is required for this application. Please enable Location Services" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
        [alert show];


    }

}
于 2013-02-13T06:06:19.693 に答える