Deep Link to XR View¶
If you are unable or not seeking to embed the Minsar Viewer SDK in your app or website, we provide an even simpler way for your users to view your experiences! The Deep Link feature allows developers to redirect users to an experience made in Minsar using our own XR View viewer app.
Compatibility¶
In this scenario, there are 2 ways to view an Experience made in Minsar, and depending on the content compatibility may vary.
The scene might be compatible with the WebXR Viewer, which requires no app installation and runs in the browser.
The WebXR Viewer will be available on Android, LuminOS (Magic Leap One), Windows Mixed Reality (HoloLens 2), Oculus Quest starting Q3 2020. We plan to add iOS support in the months following the initial release.
Incompatible experiences will need to be viewed from the XR View app, which is available on iOS and Android, and will soon be available on LuminOS and Windows Mixed Reality (HoloLens).
Open Experience API¶
Developers can let the Minsar Distribute API choose the best viewing mode with Automatic mode, or force the redirection to either the WebXR Viewer or the native app.
API Reference¶
Automatic Mode¶
If XR View is already installed, it will automatically open the app; otherwise, it will attempt to view the experience from the browser.
If the experience or device isn't compatible, it will redirect the user to the app store page of the native XR View app. Once the app is installed, it will open the experience.
Deep Link: https://xrtp.link/?id=${ExperienceId}
App Scheme¶
This scenario assumes the user already has XR View installed. Using deep linking, the experience is automatically opened in XR View.
Deep Link: xrtp://xrtp.link/view?id=${ExperienceId}
Getting Started¶
You will find below the different URLs you can call to open an experience. We recommend using the platform's native API for calling a URL:
iOS¶
From the iOS API Documentation:
``` swift tab="Swift" guard let url = URL(string: "ONE_OF_THE_URL_ABOVE") else { return ; } UIApplication.shared.open(url, options: [:], completionHandler: nil)
``` objective-c tab="Objective-C"
NSURL *URL = [NSURL URLWithString:@"ONE_OF_THE_URL_ABOVE"];
UIApplication *application = [UIApplication sharedApplication];
[application openURL:URL options:@{} completionHandler:nil];
Android¶
From the Android API Documentation:
``` kotlin tab="Kotlin" // Build the intent val experience = Uri.parse("ONE_OF_THE_URL_ABOVE") val xpIntent = Intent(Intent.ACTION_VIEW, experience)
// Verify it resolves
val activities: List
// Start an activity if it's safe if (isIntentSafe) { startActivity(mapIntent) }
``` java tab="Java"
// Build the intent
Uri experience = Uri.parse("ONE_OF_THE_URL_ABOVE");
Intent xpIntent = new Intent(Intent.ACTION_VIEW, experience);
// Verify it resolves
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(xpIntent, 0);
boolean isIntentSafe = activities.size() > 0;
// Start an activity if it's safe
if (isIntentSafe) {
startActivity(mapIntent);
}
Support¶
Having trouble with integrating the deep linking features? Please contact our support!