L’estensione Luoghi consente di agire in base alla posizione degli utenti. Questa estensione è l’interfaccia delle API di Places Query Service. Ascoltando gli eventi che contengono le coordinate GPS e gli eventi dell'area geografica, questa estensione invia nuovi eventi elaborati dal motore di regole. L’estensione Places recupera e fornisce anche un elenco dei punti di interesse più vicini per i dati dell’app recuperati dalle API. Le aree restituite dalle API vengono memorizzate nella cache e nella persistenza, il che consente un’elaborazione offline limitata.
In Experience Platform Launch, fai clic sul pulsante Estensioni scheda .
Sulla Catalogo , individua la Luoghi e fai clic su Installa.
Seleziona le librerie Luoghi da utilizzare in questa proprietà. Queste sono le librerie che saranno accessibili nella tua app.
Fai clic su Salva.
Quando fai clic su Salva, l’SDK di Experience Platform cerca i punti di interesse nei servizi Places nelle librerie selezionate. I dati POI non vengono inclusi nel download della libreria quando crei l’app, ma un sottoinsieme di POI basato sulla posizione viene scaricato sul dispositivo dell’utente finale in fase di esecuzione e si basa sulle coordinate GPS dell’utente.
Completa il processo di pubblicazione per aggiornare la configurazione SDK.
Per ulteriori informazioni sulla pubblicazione in Experience Platform Launch, consulta Pubblicazione.
Puoi aggiungere l’estensione Luoghi alle app Android e iOS. Di seguito sono riportati i passaggi per aggiungere Luoghi all’applicazione iOS o Android. Le estensioni di Luoghi sono disponibili anche per le seguenti piattaforme. Per l’aggiunta di Luoghi all’applicazione durante lo sviluppo con una di queste piattaforme, consulta i relativi collegamenti:
Per aggiungere l’estensione Luoghi all’app utilizzando Java:
Aggiungi l’estensione Luoghi al progetto utilizzando il file gradle dell’app.
implementation 'com.adobe.marketing.mobile:places:1.+'
implementation 'com.adobe.marketing.mobile:sdk-core:1.+'
Importa l'estensione Luoghi nell'attività principale dell'applicazione.
import com.adobe.marketing.mobile.Places;
Per aggiungere l’estensione Luoghi all’app utilizzando Objective-C o Swift:
Aggiungi Luoghi e Mobile Core librerie al tuo progetto. Dovrai aggiungere i seguenti pod al tuo Podfile
:
pod 'ACPPlaces', '~> 1.0'
pod 'ACPCore', '~> 2.0' # minimum Core version for Places is 2.0.3
In alternativa, se non utilizzi Cocoapods, puoi includere manualmente le librerie Mobile Core e Places dal nostro pagina delle versioni su Github.
Aggiorna i Cocoapods:
pod update
Apri Xcode e nella classe AppDelegate importa le intestazioni Core e Places:
Objective-C
#import "ACPCore.h"
#import "ACPPlaces.h"
Swift
import ACPCore
import ACPPlaces
Devi registrare l’estensione Luoghi con Mobile Core in Android e iOS.
Nelle app OnCreate
registra le estensioni Luoghi:
public class PlacesTestApp extends Application {
@Override
public void onCreate() {
super.onCreate();
MobileCore.setApplication(this);
try {
Places.registerExtension();
MobileCore.start(null);
} catch (Exception e) {
Log.e("PlacesTestApp", e.getMessage());
}
}
}
Nelle app application:didFinishLaunchingWithOptions:
registra l'estensione Places con le altre chiamate di registrazione SDK:
Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// make other sdk registration calls
[ACPPlaces registerExtension];
return YES;
}
Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// make other sdk registration calls
ACPPlaces.registerExtension();
return true;
}
I dati sulla posizione possono diventare rapidamente obsoleti, soprattutto se il dispositivo non riceve aggiornamenti sulla posizione in background.
Controlla il tempo di esecuzione dei dati di appartenenza di Places sul dispositivo impostando il places.membershipttl
impostazione di configurazione. Il valore passato rappresenta il numero di secondi in cui lo stato Luoghi rimarrà valido per il dispositivo.
All'interno del callback di MobileCore.start()
aggiorna la configurazione con le modifiche necessarie prima di richiamare lifecycleStart
:
public class PlacesTestApp extends Application {
@Override
public void onCreate() {
super.onCreate();
MobileCore.setApplication(this);
try {
Places.registerExtension();
MobileCore.start(new AdobeCallback() {
@Override
public void call(Object o) {
// switch to your App ID from Launch
MobileCore.configureWithAppID("my-app-id");
final Map<String, Object> config = new HashMap<>();
config.put("places.membershipttl", 30);
MobileCore.updateConfiguration(config);
MobileCore.lifecycleStart(null);
}
});
} catch (Exception e) {
Log.e("PlacesTestApp", e.getMessage());
}
}
}
Sulla prima riga del callback di ACPCore
s start:
metodo, chiamata updateConfiguration:
Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// make other sdk registration calls
const UIApplicationState appState = application.applicationState;
[ACPCore start:^{
[ACPCore updateConfiguration:@{@"places.membershipttl":@(30)}];
if (appState != UIApplicationStateBackground) {
[ACPCore lifecycleStart:nil];
}
}];
return YES;
}
Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// make other sdk registration calls
let appState = application.applicationState;
ACPCore.start {
ACPCore.updateConfiguration(["places.membershipttl" : 30])
if appState != .background {
ACPCore.lifecycleStart(nil)
}
}
return true;
}
Per aggiornare programmaticamente la configurazione dell’SDK in fase di runtime, usa le seguenti informazioni per modificare i valori di configurazione dell’estensione Places. Per ulteriori informazioni, consulta Riferimento API di configurazione.
Chiave | Obbligatorio | Descrizione |
---|---|---|
places.libraries |
Sì | Le librerie di estensioni Luoghi per l’app mobile. Specifica l'ID libreria e il nome della libreria supportata dall'app mobile. |
places.endpoint |
Sì | L’endpoint predefinito del servizio Query Luoghi, utilizzato per ottenere informazioni su librerie e POI. |
places.membershipttl |
No | Valore predefinito di 3600 (secondi in un'ora). Indica per quanto tempo, in secondi, le informazioni di iscrizione a Places per il dispositivo rimarranno valide. |