L’estensione Luoghi consente di agire in base alla posizione degli utenti. Questa estensione è l'interfaccia per le API del servizio Query Places. Ascoltando gli eventi che contengono le coordinate GPS e gli eventi dell'area geografica, questa estensione invia nuovi eventi elaborati dal motore delle regole. L’estensione Luoghi inoltre recupera e fornisce un elenco del POI più vicino per i dati dell’app che recuperano 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, click the Extensions tab.
Nella Catalog scheda, individuare l’ Places estensione e fare clic su Install.
Selezionare le librerie Luoghi da utilizzare in questa proprietà. Queste sono le librerie che saranno accessibili nella tua app.
Fai clic su Save.
Quando fai clic su Save, l’SDK del Experience Platform cerca nei Servizi Luoghi i punti di interesse nelle librerie selezionate. I dati POI non vengono inclusi nel download della libreria al momento della creazione dell’app, ma un sottoinsieme di POI basato sulla posizione viene scaricato nel 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, consultate Pubblicazione.
Potete 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 dei luoghi sono disponibili anche per le seguenti piattaforme. Per aggiungere Luoghi all'applicazione durante lo sviluppo con una delle seguenti piattaforme, vedere i collegamenti di accompagnamento:
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 al progetto le librerie Luoghi e Mobile Core . Dovrete aggiungere i seguenti contenitori Podfile
:
pod 'ACPPlaces', '~> 1.0'
pod 'ACPCore', '~> 2.0' # minimum Core version for Places is 2.0.3
In alternativa, se non utilizzate i cococoapodi, potete includere manualmente le librerie Mobile Core e Luoghi dalla pagina delleversioni di Github.
Aggiornate i cocopodi:
pod update
Aprite Xcode e, nella classe AppDelegate, importate 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.
Nel metodo dell'app OnCreate
registrate 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());
}
}
}
Nel application:didFinishLaunchingWithOptions:
metodo dell’app, registra l’estensione Luoghi 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 permanenza dei dati di appartenenza Luoghi sul dispositivo impostando l'impostazione di places.membershipttl
configurazione. Il valore passato rappresenta il numero di secondi per cui lo stato Luoghi rimarrà valido per il dispositivo.
All’interno del callback di MobileCore.start()
aggiornare la configurazione con le modifiche necessarie prima di chiamare 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());
}
}
}
Nella prima riga del callback del ACPCore
metodo start:
, chiama 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 SDK a livello di programmazione in fase di esecuzione, usa le informazioni seguenti per modificare i valori di configurazione dell'estensione Places. Per ulteriori informazioni, consultate RiferimentoAPI di configurazione.
Chiave | Obbligatorio | Descrizione |
---|---|---|
places.libraries |
Sì | Le librerie delle 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 sulle librerie e sui POI. |
places.membershipttl |
No | Valore predefinito di 3600 (secondi in un'ora). Indica per quanto tempo, in secondi, le informazioni di appartenenza Luoghi per il dispositivo rimarranno valide. |