Skip to content

Add AR content to your iOS app using the WebXR Device API

Notifications You must be signed in to change notification settings

tzachari/cordova-plugin-webxr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cordova WebXR Plugin

Add augmented reality content to your app using the WebXR Device API (Mozilla's version).

This is intended to support the same content as Mozilla's iOS WebXR Viewer.

Installation

Install using the Apache Cordova command line:

cordova plugin add cordova-plugin-webxr

Try It Out

To quickly test some interactive AR content, set the default source in the project's config.xml to Mozilla's example site:

<content src="https://webxr-ios.webxrexperiments.com/" />

The source code for the examples can be found in Mozilla's webxr-ios-js repo

Options

The plugin provides a set of a configurable options:

  • WEBXR_AUTHORIZATION: Sets what is shared with a page that uses the WebXR API

    • denied: Shares no world sensing data & no video
    • minimal (default): Shares minimal world sensing data, but no video
    • lite: Shares one real world plane & enables face-based experiences, but no video
    • worldSensing: Shares full world sensing data, but no video
    • videoCameraAccess: Shares full world sensing data & video feed
  • GRAPHICS_FRAMEWORK: Specifies which graphics framework to use

    • sceneKit (default): Uses SceneKit
    • metal: Uses Metal (experimental)
  • CAMERA_USAGE_DESCRIPTION: Describes to user why camera access is required

    • Default: This app uses the camera for augmented reality

To set these options, specify them when adding the plugin, e.g:

cordova plugin add cordova-plugin-webxr --variable GRAPHICS_FRAMEWORK=metal

Or add them within the plugin's tag in config.xml, e.g:

<plugin name="cordova-plugin-webxr" spec="^1.17.0">
    <variable name="WEBXR_AUTHORIZATION" value="lite" />
</plugin>

NOTE: Mozilla WebXR ≠ W3C WebXR (yet)

Mozilla is in the process of aligning their version of the API with the official draft W3C spec. As such, some features are currently broken. This plugin will be updated as the API stabilizes.

Dependencies

  • iOS 12 / ARKit 2: The plugin only works with ARKit-compatible devices & requires an iOS Deployment Target ≥ 12.0. It will automatically set the project's target to 12.0, unless specified otherwise in config.xml.

  • Swift 4: The iOS source code assumes Swift 4.0. It will automatically install cordova-plugin-add-swift-support, if it is not already present.

  • WKWebView: The plugin requires WKWebView. It will automatically install cordova-plugin-wkwebview-engine, if not already in use.

Credits

This plugin is based on the source for Mozilla's WebXR Viewer (webxr-ios@f820224)