3D WebView for UWP / Hololens (Web Browser)

Easily display and interact with web content in 3D or 2D using the web browser plugin trusted by hundreds of developers. See the developer site for full documentation.

🌐  Load a webpage from a URL or HTML string

<>  Create UIs with HTML

⚡️  Get started fast with the 3D WebViewPrefab or 2D CanvasWebViewPrefab, which render to a Texture2D and handle user interactions (click, scroll, drag)

🖥  Includes a Native 2D Mode optimized for 2D

⌨️  Type with the included on-screen keyboard

• C# source code for a unified API that works seamlessly across Windows, macOS, Android, iOS, visionOS, WebGL, and UWP (each platform sold separately)

• Powered by the UWP WebView component

• Comprehensive APIs for controlling the browser and listening to browser events

Execute JavaScript

Send messages from JavaScript to C# and vice versa

• View PDFs

• Integrate with OAuth

• Includes additional APIs for platform-specific features

• Supports MRTK touch and pointer interactions


Examples

• 3D WebView's included demo scenes:
    ◦ SimpleWebViewDemo
    ◦ CanvasWebViewDemo
    ◦ AdvancedWebViewDemo
    ◦ CanvasWorldSpaceDemo

Hololens example (MRTK2)

XR Interaction Toolkit example


System requirements

• Unity 2018.3 or newer

• Universal Windows Platform on Windows 10+ (x64, x86, arm, arm64) with D3D11 graphics

• IL2CPP (deprecated .NET runtime not supported)

• Requires the Build Type be set to "XAML Project" because the XAML WebView component is used as the browser engine

• Adds < 10 MB to the app's size


Important notes and limitations

• This package only supports UWP. To support other platforms, you can install additional 3D WebView packages, and you can save money on multiple packages by buying a bundle. All of the 3D WebView packages work seamlessly together, so all you need to do is install them into the same project, and then 3D WebView automatically detects and uses the correct plugin at runtime and build time.

• 3D WebView's native UWP plugins are provided as precompiled libraries, and the native source code for them is not provided.

• 3D WebView's native UWP plugins can't run in the editor, so a mock webview implementation is used by default while running in the editor. However, you can actually load and render real web content in the editor by also installing 3D WebView for Windows and macOS into the project. You can save money by buying both packages together in a bundle.

• When not running in Native 2D Mode, this package has the following limitations:
    ◦ The web rendering frame rate is relatively slow (<10 FPS) due to UWP limitations. Video playback also further degrades performance, so it's not recommended for video playback.
    ◦ The following limitations occur when running on Hololens or when the webview is larger than the application's window:
        - When a text input is focused, no blinking text caret appears.
        - A webview that should have a transparent background instead has a black background.
    ◦ Support for hover and drag interactions has limitations.
    ◦ The plugin is unable to click or scroll in iframes.
    ◦ Scrollbars aren't rendered.
    ◦ Some HTML5 widget popups (like date picker inputs) aren't rendered. For more details, please see this page.

• 3D WebView for UWP is powered by the UWP WebView component, which internally uses the EdgeHTML browser engine (v18). Although most websites work correctly with EdgeHTML, the engine doesn't support some of the newest JavaScript features and APIs, so if a website uses new JavaScript APIs added since 2020, it may not render or work correctly. To check if a website is compatible with the EdgeHTML engine, you can test it with a legacy version of the Edge browser using the steps described here.

• Compatible with Hololens 2.

• The UWP plugin embeds PDF.js from Mozilla, so you must display a copy of its included Apache 2.0 license in your UWP app's about page or credits.