ws1-sdk-react-native v24.9.0
ws1-sdk-react-native
Use this document to install the VMware Workspace One SDK Plugin for React-Native. The plugin helps enterprise app developers add enterprise- grade security, conditional access, and compliance capabilities to mobile applications.
Supported Components
This plugin works with the listed component versions.
- Workspace ONE UEM Console 2322+ (may need to be higher depending on specific features)
- Android 7.0+ (for Android SDK component) / API level 24 OR above / Android Studio with the Gradle Android Build System (Gradle) 7.4+ or later / Workspace ONE Intelligent Hub for Android version 24.07 or later
- iOS and iPadOS 15+ or later (for iOS SDK component) / Xcode 15.0+ or later
Initial Setup
Please find the Prerequisites for using the React Native SDK
Package installation
$ npm install ws1-sdk-react-native --save
Mostly automatic installation
$ react-native link ws1-sdk-react-native
Additional Setup
iOS
Add following code in AppDelegate
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
//Add following code for posting Notification for URL
NSNotification *info = [[NSNotification alloc]initWithName:@"UIApplicationOpenURLOptionsSourceApplicationKey" object:url userInfo:options];
[[NSNotificationCenter defaultCenter] postNotification:info];
return YES;
}
Android
- Add the library files location to the application build configuration
repositories {
//Old implementation
// flatDir {
// dirs "$rootDir/../node_modules/ws1-sdk-react-native/android/libs"
// }
//Change to new Maven URL
jcenter()
maven {
url 'https://vmwaresaas.jfrog.io/artifactory/Workspace-ONE-Android-SDK/'
}
}
- Modify AndroidManifest.xml for Main Launcher
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
</activity>
<activity
android:name="com.airwatch.login.ui.activity.SDKSplashActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
- Update your Main Activity
import com.workspaceonesdk.WorkspaceOneSdkActivity;
public class MainActivity extends WorkspaceOneSdkActivity {
/**
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "example";
}
}
- . Add SDKEventImpl.java
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import org.koin.core.component.KoinComponent;
import com.airwatch.sdk.profile.AnchorAppStatus;
import com.airwatch.sdk.profile.ApplicationProfile;
import com.airwatch.sdk.shareddevice.ClearReasonCode;
import com.airwatch.event.WS1AnchorEvents;
import org.koin.core.Koin;
import org.koin.core.component.KoinComponent;
import org.koin.mp.KoinPlatformTools;
public class SDKEventImpl implements WS1AnchorEvents, KoinComponent {
@Override
public void onApplicationConfigurationChange(Bundle bundle, Context context) {
}
@Override
public void onApplicationProfileReceived(Context context, String s, ApplicationProfile applicationProfile) {
Log.d("SDK Init","onApplicationProfileReceived");
}
@Override
public void onClearAppDataCommandReceived(Context context, ClearReasonCode clearReasonCode) {
Log.d("SDK Init","onClearAppDataCommandReceived");
}
@Override
public void onAnchorAppStatusReceived(Context context, AnchorAppStatus anchorAppStatus) {
}
@Override
public void onAnchorAppUpgrade(Context context, boolean b) {
}
@Override
public Koin getKoin() {
return KoinPlatformTools.INSTANCE.defaultContext().get();
}
}
- . Update your Android Application subclass as follows
- Declare that the class implements the WorkspaceOneSDKApplication interface.
- Move the code from the body of your onCreate method, if any, to an override of the AWSDKApplication onPostCreate method.
- Override the AWSDKApplication getMainActivityIntent() method to return an Intent for the application’s main Activity.
- Override the following Android Application methods:
- attachBaseContext
import com.workspaceonesdk.WorkspaceOneSdkApplication;
public class MainApplication extends WorkspaceOneSdkApplication implements ReactApplication {
// Application-specific overrides : Comment onCreate() out and move the code to onPostCreate()
// @Override
// public void onCreate() {
// super.onCreate();
// }
// Application-specific overrides : Copy all the code from onCreate() to onPostCreate()
@Override
public void onPostCreate() {
super.onPostCreate();
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
preferences.edit().putString("debug_http_host", "localhost:8088").apply();
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
// Code from the application's original onCreate() would go here
}
public void attachBaseContext(@NotNull Context base) {
super.attachBaseContext(base);
attachBaseContext(this);
}
@NotNull
@Override
public Intent getMainActivityIntent() {
// Replace MainActivity with application's original main activity
return new Intent(getApplicationContext(), MainActivity.class);
}
@NotNull
@Override
public WS1AnchorEvents getEventHandler() {
return new SDKEventImpl();
}
}
Feature Description
Initialization of the SDK adds the listed features to your application, depending on the configurations set in the SDK profile in the Workspace One UEM Console.
- Application level passcode
- Application level tunneling of network traffic
- Integrated authentication / single sign on
Data loss prevention
- Disable Screenshot (Android only)
- Restrict open-in for documents, web links, and email to approved applications only Restrict copy/paste (SDK provides flag value)
- Restrict access to app when device is offline
- Branding of VMware AirWatch splash screens when SDK application is launched on device
Feature Implementation
Please follow document at implementation.
Release Notes
- Updated Version of WorkspaceOne SDKs(24.7.0 for iOS and 24.06 for Android)
Workspace One SDK Documentation
For further details about the Workspace One SDK, navigate to Workspace-ONE-SDK and select the required platform, SDK version and Workspace ONE UEM console version.
License
Open Source Link
Questions and Feedback
For any questions/feedback or to report an issue, please reach out to VMware support teams
9 months ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago