A extensão Places permite agir com base na localização dos usuários. Essa extensão é a interface para as APIs do Serviço de query do Places. Ao acompanhar eventos que contêm coordenadas GPS e eventos de região de geofence, essa extensão despacha novos eventos que são processados pelo Mecanismo de regras. A extensão Places também recupera e fornece um POI mais próximo para os dados do aplicativo que são recuperados das APIs. As regiões retornadas pelas APIs são armazenadas em cache e persistência, o que permite um processamento offline limitado.
No Experience Platform Launch, clique no botão Extensões guia .
No Catálogo localize a guia Places e clique em Instalar.
Selecione as bibliotecas do Places que deseja usar nesta propriedade. Essas são as bibliotecas que estarão acessíveis no seu aplicativo.
Clique em Salvar.
Ao clicar em Salvar, o SDK do Experience Platform pesquisa os POIs do Places Services nas bibliotecas selecionadas. Os dados de POI não são incluídos no download da biblioteca quando você cria o aplicativo, mas um subconjunto baseado em local de POIs é baixado para o dispositivo do usuário final no tempo de execução e é baseado nas coordenadas GPS do usuário.
Conclua o processo de publicação para atualizar a configuração do SDK.
Para obter mais informações sobre publicação no Experience Platform Launch, consulte Publicação.
Você pode adicionar a extensão do Places aos aplicativos do Android e iOS. As etapas para adicionar Places ao seu aplicativo iOS ou Android podem ser vistas abaixo. As extensões do Places também estão disponíveis para as seguintes plataformas, abaixo. Para adicionar Places ao seu aplicativo ao desenvolver-se com uma dessas plataformas, consulte os links associados:
Para adicionar a extensão do Places ao aplicativo usando o Java:
Adicione a extensão do Places ao projeto usando o arquivo gradle do aplicativo.
implementation 'com.adobe.marketing.mobile:places:1.+'
implementation 'com.adobe.marketing.mobile:sdk-core:1.+'
Importe a extensão Places na atividade principal do aplicativo.
import com.adobe.marketing.mobile.Places;
Para adicionar a extensão do Places ao seu aplicativo usando Objetive-C ou Swift:
Adicionar os locais e Mobile Core bibliotecas para o seu projeto. Você precisará adicionar os seguintes pods ao seu Podfile
:
pod 'ACPPlaces', '~> 1.0'
pod 'ACPCore', '~> 2.0' # minimum Core version for Places is 2.0.3
Como alternativa, se você não estiver usando o Cocoapods, poderá incluir manualmente as bibliotecas do Mobile Core e do Places de nossa página de lançamentos no Github.
Atualize seu Cocoapods:
pod update
Abra o Xcode e, na classe AppDelegate , importe os cabeçalhos Principal e Places:
Objetive-C
#import "ACPCore.h"
#import "ACPPlaces.h"
Swift
import ACPCore
import ACPPlaces
Você precisa registrar a extensão do Places com o Mobile Core no Android e no iOS.
No aplicativo OnCreate
registrar as extensões do 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());
}
}
}
No aplicativo application:didFinishLaunchingWithOptions:
registre a extensão do Places com suas outras chamadas de registro do SDK:
Objetive-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;
}
Os dados de localização podem rapidamente tornar-se obsoletos, especialmente se o dispositivo não estiver recebendo atualizações de localização em segundo plano.
Controle o tempo de vida dos dados de associação do Places no dispositivo, definindo a variável places.membershipttl
configuração. O valor transmitido representa o número de segundos em que o estado do Places permanecerá válido para o dispositivo.
Dentro do retorno de chamada de MobileCore.start()
atualize a configuração com as alterações necessárias antes de chamar 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());
}
}
}
Na primeira linha do retorno de chamada de ACPCore
's start:
método, chamada updateConfiguration:
Objetive-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;
}
Para atualizar a configuração do SDK de forma programática no tempo de execução, use as seguintes informações para alterar os valores de configuração da extensão do Places. Para obter mais informações, consulte Referência da API de configuração.
Chave | Obrigatório | Descrição |
---|---|---|
places.libraries |
Sim | As bibliotecas de extensão do Places para o aplicativo móvel. Especifica a ID da biblioteca e o nome da biblioteca compatível com o aplicativo móvel. |
places.endpoint |
Sim | O ponto de extremidade padrão do Serviço de consulta do Places, usado para obter informações sobre bibliotecas e POIs. |
places.membershipttl |
Não | Valor padrão de 3600 (segundos em uma hora). Indica por quanto tempo, em segundos, as informações de associação do Places para o dispositivo permanecerão válidas. |