L’estensione Luoghi consente di agire in base alla posizione degli utenti. Questa estensione è l’interfaccia delle API Places Query Service. Ascoltando gli eventi che contengono coordinate GPS e gli eventi di regione del recinto geografico, questa estensione invia nuovi eventi elaborati dal Motore di regole. L’estensione Places recupera e consegna anche un elenco dei POI più vicini per i dati dell’app che recupera dalle API. Le aree restituite dalle API sono memorizzate nella cache e nella persistenza, il che consente un’elaborazione offline limitata.
In Experience Platform Launch, fai clic su Estensioni scheda.
Il giorno Catalogo , individua la scheda Places e fai clic su Installa.
Seleziona le librerie Places 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 POI in Places Services nelle librerie selezionate. I dati dei punti di interesse non vengono inclusi nel download della libreria quando si crea l’app, ma un sottoinsieme di punti di interesse 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 dell’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 Places all’applicazione iOS o Android. Di seguito sono disponibili le estensioni Luoghi per le seguenti piattaforme. Per aggiungere Places all’applicazione durante lo sviluppo con una di queste piattaforme, consulta i collegamenti corrispondenti:
Plug-in Luoghi nativi di React
Per aggiungere l’estensione Places all’app utilizzando Java:
Aggiungi l’estensione Places 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 Places nell’attività principale dell’applicazione.
import com.adobe.marketing.mobile.Places;
Per aggiungere l’estensione Places all’app utilizzando Objective-C o Swift:
Aggiungi Places e Core mobile librerie al 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 da 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
È necessario registrare l’estensione Places con Mobile Core in Android e iOS.
Nel file dell’app OnCreate
registrare le estensioni Places:
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());
}
}
}
Nel file dell’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 relativi alla posizione possono diventare rapidamente obsoleti, soprattutto se il dispositivo non riceve aggiornamenti sulla posizione in background.
Controlla il time-to-live dei dati di iscrizione a Places sul dispositivo impostando places.membershipttl
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
di 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 la configurazione dell’SDK a livello di programmazione in fase di esecuzione, utilizza 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 dell’estensione Luoghi per l’app mobile. Specifica l’ID e il nome della libreria supportati dall’app mobile. |
places.endpoint |
Sì | L’endpoint predefinito di Places Query Service, utilizzato per ottenere informazioni su librerie e POI. |
places.membershipttl |
No | Valore predefinito: 3600 (secondi in un'ora). Indica per quanto tempo, in secondi, le informazioni sull’iscrizione a Places per il dispositivo rimarranno valide. |