An die App kann die Anforderung gestellt werden, dass sie auf mehreren Märkten gemessen werden soll. In diesem Fall muss für jeden Markt die aktuelle Version der Mess-Library mit den entsprechenden Implementierungsvorschriften integriert werden.
Ab der Version 1.1.0 wird dies durch eine veränderte Namensgebung und eine veränderte Packagestruktur unterstützt. In den folgenden Beispielen werden die beiden Märkte MA und MB integriert. Bei der Namesgebung der Libraries gilt folgende Struktur:
spring-appsensor-<OS>-<MARKT>-<VERSION>
Beispiele:
- spring-appsensor-android-MA-1.1.0.jar
- spring-appsensor-iOS-MA-1.1.0.zip
Beachten Sie die Implementierungsvorschriften für die einzelnen Libraries. Diese können sich (stark) auf den einzelnen Märkten unterscheiden.
Integration mehrerer Libraries bei iOS
Im folgenden Beispiel werden die Libraries der beiden Märkte MA und MB integriert. Hierzu müssen die beiden Headerdateien:
- SpringMA.h
- SpringMB.h
#import "TestApp.h" #import "SpringMA.h" #import "SpringMB.h" @implementation TestApp3AppDelegate @synthesize window = _window; @synthesize tabBarController = _tabBarController; SpringMA *springMA; SpringMB *springMB; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // --- MA --------------------------------------------------------------------------------- springMA = [[SpringMA alloc] initWithSiteAndApplication:@"sitename" application:@"applicationName"]; NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:MA_SPRING_APP_STARTED, MA_SPRING_VAR_ACTION,nil]; [springMA commit:dict]; // --- MB --------------------------------------------------------------------------------- springMB = [[SpringMB alloc] initWithSiteAndApplication:@"sitename" application:@"applicationname"]; dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:MB_SPRING_APP_STARTED,MB_SPRING_VAR_ACTION,nil]; [springMB commit:dict]; self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; return YES; } // ... more code
Integration mehrerer Libaries bei Android
Im folgenden einfachen Beispiel werden die Libraries der beiden Märkte MA und MB integriert. Hierzu müssen die beiden Java-Klassen:
- de.spring.mobile.ma.SpringMA
- de.spring.mobile.mb.SpringMB
package de.spring.android.test; import java.util.HashMap; import java.util.Map; import de.spring.mobile.ma.SpringMobileMA; import de.spring.mobile.mb.SpringMobileMB; import android.app.Activity; public class MyActivity extends Activity { SpringMobileMA ma; SpringMobileMB mb; public MyActivity() { ma = new SpringMobileMA("sitename", "applicationname", getApplicationContext()); mb = new SpringMobileMB("sitename", "applicationname", getApplicationContext()); } /** * @see android.app.Activity#onStart() */ @Override protected void onStart() { Map<String, Object> mapma = new HashMap<String, Object>(); mapma.put(SpringMobileMA.VAR_ACTION, SpringMobileMA.APP_BACKGROUND); ma.commit(mapma); Map<String, Object> mapmb = new HashMap<String, Object>(); mapmb.put(SpringMobileMB.VAR_ACTION, SpringMobileMB.APP_BACKGROUND); mb.commit(mapmb); } // more code ... }