UNPKG

@seermedical/cordova-plugin-minew-trackerkit

Version:
126 lines (95 loc) 4.47 kB
Minew-TrackerKit ====== # Installation `cordova plugin add https://github.com/seermedical/cordova-plugin-minew-trackerkit.git` A Cordova plugin on iOS and Android to communicate with the Minew TrackerKit Framework Plugin development environment: https://github.com/seermedical/seer-beacon-tracker # Plugin structure * central manager * central array of buttons that can be easily identified and accessed by all functions # Buttons * address: mac address (unique ID) * name: could be null * model: F4S or Finder or null * RSSI: received signal strength * battery: int between 0-100 for battery level * distance: near, mid, far (currently only available on iOS) * status: connected, disconnected, connecting, failed # Plugin functions ## startScan(success, failure) * locate buttons and add to central array * success - receieves buttons when they are found * failure - currently only applies to android (no permission) ### TODO * should accept scanTime (and stopScan after elapsed time) * put in fail callbakc ## stopScan(success, failure) * stop currently running scan ## find(address, success, failure) * look for previously bound beacon address and connect * success - callback on connection * failure - callback if connection fails ### TODO * functions are working as intended via a workaround but the internal code was not working as expected from the Minew SDK. Need to followup with Minew. ## connect(address, success, failure) * connect to a button for mac address * success - callback on connection * failure - callback if connection fails ## disconnect(address, success, failure) * remove button for mac address * success - called on success * success - called on failure ## subscribeToClick(address, success, failure) * listen to beacon click * success - gets called every click * failure - gets called if it fails to subscribe ## subscribeToStatus(address, success, failure) * listen to beacon connection status * success - gets called on reconnection * failure - gets called on disconnection # iOS Quirks * you need to strip architectures from the connected MTTrackit framework before it will upload to the app store. This script should be added as a run script to XCode (see [this answer](https://stackoverflow.com/questions/30547283/submit-to-app-store-issues-unsupported-architecture-x86)). To add run script in XCode go to project target, select 'Build Phases' tab, choose Editor -> Add Build Phase -> Add Run Script Build Phase, Click on the newly created Run Script, copy in the following code: ``` echo "Target architectures: $ARCHS" APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK do FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" echo $(lipo -info "$FRAMEWORK_EXECUTABLE_PATH") FRAMEWORK_TMP_PATH="$FRAMEWORK_EXECUTABLE_PATH-tmp" # remove simulator's archs if location is not simulator's directory case "${TARGET_BUILD_DIR}" in *"iphonesimulator") echo "No need to remove archs" ;; *) if $(lipo "$FRAMEWORK_EXECUTABLE_PATH" -verify_arch "i386") ; then lipo -output "$FRAMEWORK_TMP_PATH" -remove "i386" "$FRAMEWORK_EXECUTABLE_PATH" echo "i386 architecture removed" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_TMP_PATH" "$FRAMEWORK_EXECUTABLE_PATH" fi if $(lipo "$FRAMEWORK_EXECUTABLE_PATH" -verify_arch "x86_64") ; then lipo -output "$FRAMEWORK_TMP_PATH" -remove "x86_64" "$FRAMEWORK_EXECUTABLE_PATH" echo "x86_64 architecture removed" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_TMP_PATH" "$FRAMEWORK_EXECUTABLE_PATH" fi ;; esac echo "Completed for executable $FRAMEWORK_EXECUTABLE_PATH" echo $(lipo -info "$FRAMEWORK_EXECUTABLE_PATH") done ``` # Android Quirks * permissions - don't start scanning straight away. The user needs to grant location access first. # Minew Resources - [SDK for android and ios](http://docs.beaconyun.com/TrackerKit/iOS_MinewTrackerKit_Software_Development_Kit_Guide_en/) - [Minew Libraries and Framework](https://docs.beaconyun.com/) # General Resources - [BLE template](https://github.com/seermedical/cordova-plugin-ble-central) - [Cordova documentation](https://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/) - [Cordova plugin template](https://github.com/rrostt/cordova-plugin-template)