3D WebView for Android and iOS (Web Browser)

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

🌐  Load a webpage from a URL or HTML string

📺  Watch videos and YouTube

<>  Create UIs with HTML

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

📱  Includes a Native 2D Mode optimized for mobile

⌨️  Type with the included on-screen keyboard or native keyboard

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

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

• Powered by the Android System WebView and WKWebView

Execute JavaScript

Send messages from JavaScript to C# and vice versa

• View and create PDFs

• Integrate with OAuth

• Includes additional APIs for platform-specific features (Android, iOS)

• Supports transparent pages


Examples

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

Meta Quest example

XR Interaction Toolkit example

AR Foundation example


System requirements

• Unity 2018.3 or newer

• Android 5+ (armv7, arm64, x86, x64), supports both OpenGL and Vulkan graphics

• iOS 10+, supports both Metal and OpenGL graphics

• Supports both Mono and IL2CPP

• Adds < 3 MB to the app's size


Important notes and limitations

• This package only supports Android and iOS. 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 Android and iOS plugins are provided as precompiled libraries, and the native source code for them is not provided.

• 3D WebView's native Android and iOS 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, the Android package has the following limitations:
    ◦ Vulkan support requires the VK_ANDROID_external_memory_android_hardware_buffer Vulkan extension and Unity 2020.2 or newer. For more details, please see this page.
    ◦ Scrollbars aren't rendered.
    ◦ Some HTML5 widget popups (like date picker inputs) aren't rendered. For more details, please see this page.

• When not running in Native 2D Mode, the iOS package has the following limitations:
    ◦ Some 3rd-party JS video widgets don't function as expected. Also, on YouTube, the video resolution is 360p (640 x 360 pixels) and cannot be changed. For more details, please see this article.
    ◦ The web rendering frame rate is relatively slow (<15 FPS) due to iOS limitations. The exception to this is video, which is rendered at a high frame rate.
    ◦ Support for hover and drag interactions has limitations.
    ◦ WebGL content isn't rendered.
    ◦ Scrollbars aren't rendered.
    ◦ Some HTML5 widget popups (like date picker inputs) aren't rendered. For more details, please see this page.

• On Android, the browser engine can play multiple videos simultaneously within the same webview, but it's unable to play videos in multiple webviews simultaneously. If a video is played in a webview, it will pause videos playing in other webviews (Android System WebView limitation).

• Also supports running in the iOS simulator.

• The Android and iOS plugins embed PDF.js from Mozilla, so you must display a copy of its included Apache 2.0 license in your Android and iOS apps' about page or credits.