React Native - Geofence
Geofence Kurulum Adımları
Android
Geofence özelliğini etkinleştirmek için
AndroidManifest.xml
dosyanıza aşağıdaki kodu ekleyin.<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <service android:name="com.visilabs.gps.geofence.GeofenceTransitionsIntentService" android:enabled="true" android:permission="android.permission.BIND_JOB_SERVICE" /> <service android:name="com.visilabs.gps.geofence.GeofenceMonitor" android:enabled="true" android:exported="true" /> <receiver android:name="com.visilabs.gps.geofence.GeofenceTransitionsReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.visilabs.android.gps.geofence.ACTION_RECEIVE_GEOFENCE" /> </intent-filter> </receiver> <receiver android:name="com.visilabs.gps.geofence.VisilabsAlarm" android:exported="false" /> <receiver android:name="com.visilabs.gps.geofence.GeofenceBroadcastReceiver" android:enabled="true" android:exported="true" />
Sdk’yı çalıştırmak için alttaki init kodunu
MainApplication.java
dosyanıza ekleyin.
Geofence özelliğini etkin hale getirmek içinVisilabs.CreateAPI
fonksiyonunun son parametresini(12.)true
değeri girin.import com.visilabs.Visilabs; import euromsg.com.euromobileandroid.EuroMobileManager;
@Override public void onCreate() { // ... initEuroMessage(); } private void initEuroMessage() { String appAlias = "ALIAS"; String huaweiAppAlias = "HUAWEI-ALIAS"; String organizationId = "OID"; String siteId = "SID"; String datasource = "datasource"; String channel = "Android"; String segmentUrl = "http://lgr.visilabs.net"; String realtimeUrl = "http://rt.visilabs.net"; String targetUrl = "http://s.visilabs.net/json"; String actionUrl = "http://s.visilabs.net/actjson"; String geofenceUrl = "http://s.visilabs.net/geojson"; Visilabs.CreateAPI(organizationId, siteId, segmentUrl, datasource, realtimeUrl, channel, this, targetUrl, actionUrl, 30000, geofenceUrl, true, "reactnative"); EuroMobileManager euroMobileManager = EuroMobileManager.init(appAlias, huaweiAppAlias, this); euroMobileManager.setPushIntent("com.demo.MainActivity", this); euroMobileManager.setNotificationLargeIcon(R.drawable.ic_launcher,this); euroMobileManager.setNotificationTransparentSmallIcon(R.drawable.ic_launcher, this); }
iOS
AppDelegate.m
dosyasındakididFinishLaunchingWithOptions
fonksiyonununun return ifadesinden hemen öncesine alttaki kodu ekleyin.
Not: Geofence özelliğinin aktif olması içingeofenceEnabled
parametresitrue
olmalıdır.Geofence konum hizmetleri tanımlamaları
Uygulamanızda konum hizmetlerini etkinleştirmek için öncelikle aşağıdaki anahtarları Info.plist dosyanıza eklemeniz gerekir.NSLocationAlwaysAndWhenInUseUsageDescription
NSLocationWhenInUseUsageDescription
Bu izinlerin örnek uygulaması aşağıdaki gibidir:
Ayrıca bölgeleri izlemek, bölge listesini yenilemek ve push bildirimlerini almak için Info.plist dosyanızda UIBackgroundModes altına aşağıdaki anahtarları eklemeniz gerekir.
Geofence Test Adımları
Kontrol aşamasında ise öncelikle panelden test edecek kişi kendi evine veya herhangi bir lokasyona geofence tanımlamalı.
Tanımlanan geofence target actions altından bir geofence tipindeki action'a bağlanmalı ve hangi durumlarda push gönderilecek seçilmeli(giriş, çıkış).
Cihazın konum bilgilerinin açılması ve uygulamadan izin verilmesi gerekiyor. İzin verildiğinde sdk, RMC panelinde tanımlanmış son 20 geofence alanını çekip konum hareketlerinizi dinlemeye başlıyor.
Sonrasında test edilecek cihaz android ise fake gps uygulaması kurulmalı ve bu fake gps uygulamasında panelden tanımlı olan geofence alanından geçilecek şekilde rota oluşturulması gerekiyor.
Cihaz iOS ise yine panelde girilen lokasyondan geçecek rotaya sahip bir gpx dosyası hazırlanmalı ve xcode üzerinden projeye eklenmeli.
Adımlar tamamlandıktan sonra uygulama başlatıldığında cihaz o konumlardan geçtiğinde panelde tanımlanan push cihaza geliyor olması gerekiyor.
Copyright 2020 Related Digital