سؤال

حاليًا يطلب طلبي مرة واحدة فقط للحصول على إذن لاستخدام الموقع الحالي. إذا لم يسمح المستخدم ، فهو لا يسأل مرة أخرى ما لم يعيد تعيين تحذير الموقع في الإعدادات العامة. أود أن أعطي المستخدم فرصة من داخل التطبيق لمنح هذا الإذن لاحقًا. بمعنى آخر ، يجب أن يظهر مربع الحوار مرة أخرى إذا ضغط على زر معين. هل هذا ممكن؟

شكرا لنصيحتك.

هل كانت مفيدة؟

المحلول

إجابة جديدة: الآن في iOS 8 ، يمكنك فتح تطبيق إعدادات الجهاز برمجيًا:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];

إذا كنت تدعم إصدارات iOS السابقة وترغب في التأكد من أنه يمكن معالجة ذلك ، فقم بذلك:

if (&UIApplicationOpenSettingsURLString != NULL) {
   NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
   [[UIApplication sharedApplication] openURL:url];
}
else {
  //Earlier iOS version
}

الإجابة القديمة: لا توجد طريقة أعرفها لإجبار النافذة المنبثقة الأصلية على الظهور (والسماح للمستخدم بالقفز إلى صفحة الإعدادات).

يمكنك استخدام الطريقة التالية لتحديد ما إذا كان المستخدم قد سمح لخدمات الموقع بتطبيقك: CllocationManager:

+(CLAuthorizationStatus)authorizationStatus

يمكنك أيضًا معرفة ما إذا كان يتم تمكين خدمات الموقع عالميًا على مستوى الجهاز أم لا ، أيضًا: CllocationManager:

+(BOOL)locationServicesEnabled

نصائح أخرى

[CLLocationManager locationServicesEnabled] فقط أخبرك إذا كانت خدمات المواقع تمكين الجهاز.

وفقا ل هذه وثيقة.

[CLLocationManager authorizationStatus]

سيعود أحد هؤلاء

typedef enum {
   kCLAuthorizationStatusNotDetermined = 0,
   kCLAuthorizationStatusRestricted,
   kCLAuthorizationStatusDenied,
   kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;

إذا كانت النتيجة kCLAuthorizationStatusDenied يمكن أن تخبر المستخدم بالسماح باستخدام خدمات الموقع عن طريق إرساله إلى الإعدادات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top