النقل إلى تفاصيل المكان (جديد)

تتوافق حزمة تطوير برامج الأماكن لأجهزة iOS مع تفاصيل المكان الحالية. إذا كنت معتادًا على استخدام حزمة تطوير برامج الأماكن لأجهزة iOS الحالية، سيؤدي الإصدار الجديد من ميزة "تفاصيل المكان" إلى إجراء التغييرات التالية:

  • تستخدم نموذج أسعار جديدًا. للحصول على معلومات عن الأسعار لجميع واجهات برمجة التطبيقات، يُرجى الاطّلاع على أسعار حزمة تطوير برامج الأماكن لأجهزة iOS (جديد).

  • يجب إخفاء الحقل. يجب عليك تحديد الحقول التي تريد إرجاعها في الرد. لا تتوفّر قائمة تلقائية للحقول التي تم إرجاعها. إذا قمت بحذف هذه القائمة، فإن الطرق تقوم بإرجاع خطأ.

  • لتقديم طلب، يمكنك استدعاء الطريقة GMSPlacesClient fetchPlaceWithRequest: الجديدة.

  • الانتقال إلى الطلب:

    • يشير ذلك المصطلح إلى مثال لفئة GMSFetchPlaceRequest الجديدة التي تحدِّد جميع مَعلمات الطلب، مثل معرِّف المكان والرمز المميّز للجلسة.

    • يشير هذا المصطلح إلى استدعاء من النوع GMSPlaceResultCallback للتعامل مع الردّ.

  • يحتوي الردّ على مثيل GMSPlace يحتوي على تفاصيل حول المكان. يتم الآن تحديد القيم في السمة types لمثيل GMSPlace من خلال الجدول أ والجدول ب.

  • يحتوي مثيل الاستجابة GMSPlace على السمة reviews الجديدة من النوع GMSPlaceReview. عندما يعرض تطبيقك معلومات تم الحصول عليها من المثيل GMSPlace، مثل الصور والمراجعات، يجب أن يعرض التطبيق أيضًا عمليات تحديد المصدر المطلوبة.

    لمزيد من المعلومات، راجع المستندات المتعلقة بالإحالات.

  • يحتوي مثيل الردّ GMSPlace على الدوال الفرعية التالية:

    • isOpen تحسب ما إذا كان المكان مفتوحًا في وقت محدّد.

    • isOpenAtDate تحتسب ما إذا كان المكان مفتوحًا في تاريخ معيّن.

    لا تتوفر هذه الدوال إلا عند تفعيل حزمة تطوير برامج الأماكن لنظام التشغيل iOS. ولا تكون متاحة عند تفعيل حزمة تطوير برامج الأماكن لنظام التشغيل iOS (جديد). لمزيد من المعلومات، يُرجى الاطّلاع على مقالة اختيار إصدار حزمة SDK.

مثال على الطلب

باستخدام "تفاصيل المكان" (New) (جديد)، يمكنك تقديم طلب وتمرير جميع المعلمات في مثيل GMSFetchPlaceRequest. يستخدم هذا المثال أيضًا قناع حقل بحيث لا تتضمن الاستجابة سوى الاسم المعروض وعنوان URL لموقع الويب للمكان:

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];