Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Geofence Kurulum Adımları

Android

  • Geofence özelliğini etkinleştirmek için AndroidManifest.xml dosyanıza aşağıdaki kodu ekleyin.

    Code Block
    languagexml
    <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çin Visilabs.CreateAPI fonksiyonunun son parametresini(12.) true değeri girin.

    Code Block
    languagejava
    import com.visilabs.Visilabs;
    import euromsg.com.euromobileandroid.EuroMobileManager;

     

    Code Block
    languagejava
    @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ındaki didFinishLaunchingWithOptionsfonksiyonununun return ifadesinden hemen öncesine alttaki kodu ekleyin. 
    Not: Geofence özelliğinin aktif olması için geofenceEnabled parametresi true olmalıdır.

    Code Block
    [RelatedDigitalPushModule initVisilabs:@"organization_id" profileId:@"profile_id" dataSource:@"datasource" inAppNotificationsEnabled:true requestTimeoutSeconds:30 geofenceEnabled:true maxGeofenceCount:20];

  • 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:

    Code Block
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>We need access to your location for better user experience.</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>We need access to your location for better user experience.</string>
    


    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.

    Code Block
    <array>
        <string>fetch</string>
        <string>location</string>
        <string>remote-notification</string>
    </array>   

Geofence Test Adımları

  1. Kontrol aşamasında ise öncelikle panelden test edecek kişi kendi evine veya herhangi bir lokasyona geofence tanımlamalı. 

  2. Tanımlanan geofence target actions altından bir geofence tipindeki action'a bağlanmalı ve hangi durumlarda push gönderilecek seçilmeli(giriş, çıkış).

  3. Cihazın konum bilgilerinin açılması ve uygulamadan izin verilmesi gerekiyor. İzin verildiğinde sdk

...

  1. , RMC panelinde tanımlanmış son 20

...

  1. geofence alanını çekip

...

  1. konum hareketlerinizi dinlemeye başlıyor.

  2. 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.

  3. 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.

...