{"pageContext":{"articleLinkSections":[{"links":[{"text":"Vuplex Commercial Library License","url":"/articles/commercial-library-license"},{"text":"Troubleshooting clicking and scrolling","url":"/articles/troubleshooting-clicking"},{"text":"How to make a webview transparent","url":"/articles/how-to-make-a-webview-transparent"},{"text":"How to send messages from JavaScript to C# and vice versa","url":"/articles/how-to-send-messages-from-javascript-to-c-sharp"},{"text":"How to show multiple webviews / How many can be active at the same time?","url":"/articles/multiple-webviews"},{"text":"How to call platform-specific APIs","url":"/articles/how-to-call-platform-specific-apis"},{"text":"How to debug web content in a webview","url":"/articles/how-to-debug-web-content"},{"text":"How to access audio as an AudioSource, adjust volume, or mute audio?","url":"/articles/browser-audio"},{"text":"How to enable IME for entering Chinese, Japanese, and Korean text input","url":"/articles/chinese-japanese-and-korean"},{"text":"How to get, set, or delete browser cookies","url":"/articles/how-to-access-cookies"},{"text":"How to load the mobile or desktop versions of websites","url":"/articles/how-to-load-mobile-websites"},{"text":"How to scale web content to make it larger or smaller","url":"/articles/how-to-scale-web-content"},{"text":"How to use a 3rd party keyboard with 3D WebView","url":"/articles/how-to-use-a-third-party-keyboard"},{"text":"How to enable the camera, microphone, or WebRTC","url":"/articles/webrtc"},{"text":"How to use a URL with a custom scheme for OAuth","url":"/articles/custom-url-scheme"},{"text":"What is the mock webview?","url":"/articles/mock-webview"},{"text":"Vuplex Privacy Policy","url":"/articles/privacy"},{"text":"How clicking and scrolling works","url":"/articles/clicking"},{"text":"How to use 3D WebView with XR Interaction Toolkit","url":"https://github.com/vuplex/xr-interaction-webview-example"},{"text":"How to enable Widevine DRM","url":"/articles/how-to-enable-widevine"},{"text":"How to reduce the storage size of 3D WebView in an app","url":"/articles/how-to-reduce-size"},{"text":"How to get HTML, text, images, or other info from a web page","url":"/articles/how-to-get-html"},{"text":"When I drag a scrollbar, why does it scroll the wrong way?","url":"/articles/dragging-scrollbar"},{"text":"How to hide scrollbars","url":"/articles/how-to-hide-scrollbars"},{"text":"How to load a local HTML or PDF file","url":"/articles/how-to-load-local-files"},{"text":"How keyboard input works","url":"/articles/keyboard"},{"text":"Native 2D Mode","url":"/articles/native-2d-mode"},{"text":"Vulkan graphics API support","url":"/articles/vulkan"},{"text":"Explanation of normalized points","url":"/articles/normalized-points"},{"text":"Breaking changes in 3D WebView v4","url":"/articles/v4-changes"},{"text":"How to clear a webview or reset its contents","url":"/articles/how-to-clear-webview"},{"text":"How to close a webview?","url":"/articles/how-to-close-a-webview"},{"text":"How to hide a webview","url":"/articles/how-to-hide-a-webview"},{"text":"How to reference a webview in a script","url":"/articles/how-to-reference-a-webview"},{"text":"How to show the keyboard when an input field is clicked","url":"/articles/how-to-show-keyboard-when-input-is-clicked"},{"text":"How to improve performance","url":"/articles/how-to-improve-performance"},{"text":"How to pause a webview and its audio","url":"/articles/how-to-pause-a-webview"},{"text":"How to reduce memory usage or avoid out-of-memory errors","url":"/articles/how-to-reduce-memory"},{"text":"How to use Unity's new Input System","url":"/articles/new-input-system"},{"text":"How to share video from a Unity camera on a video call?","url":"/articles/unity-camera-video-call"},{"text":"How to speed up page loads / reduce loading time","url":"/articles/how-to-reduce-loading-time"},{"text":"How to display WebXR or 360˚ videos?","url":"/articles/webxr"},{"text":"How to change the URL at runtime","url":"/articles/how-to-change-url-at-runtime"},{"text":"Dragging isn't working / How to enable dragging?","url":"/articles/how-to-enable-dragging"},{"text":"Does 3D WebView support RTP or RTSP?","url":"/articles/unsupported-protocols"},{"text":"How to access the focused input field via JavaScript","url":"/articles/how-to-access-focused-input-field"},{"text":"How to render a webview using one of Unity's built-in materials","url":"/articles/how-to-use-standard-material"},{"text":"How to get ExecuteJavaScript() to return the result of a Promise","url":"/articles/javascript-promise-result"},{"text":"How to disable CORS errors","url":"/articles/cors"},{"text":"Details about the security of 3D WebView","url":"/articles/3d-webview-security"},{"text":"Is it necessary to purchase a separate 3D WebView package for each platform?","url":"/articles/is-it-necessary-to-buy-for-each-platform"},{"text":"How to use / install multiple 3D WebView packages together in the same project","url":"/articles/how-to-use-multiple-packages-together"},{"text":"How to install browser extensions (like Adblock or Metamask)?","url":"/articles/browser-extensions"},{"text":"How to click or raycast through the transparent parts of a web page","url":"/articles/raycast-through-transparent-page"},{"text":"How to intercept video playback in order to play videos with an external third party player","url":"/articles/intercept-video"},{"text":"How to give a webview's background a transparent blur effect","url":"/articles/transparent-blur-background"},{"text":"How to detect when a web page has finished rendering","url":"/articles/detect-page-finished-rendering"},{"text":"Limitations of some HTML controls (like <select> dropdown, date picker) in 3D rendering mode","url":"/articles/3d-rendering-limitations"},{"text":"Unable to place Unity UI on top / in front of a webview (webview is always covering Unity UI)","url":"/articles/unable-to-place-items-in-front-of-webview"},{"text":"How to make controller joysticks control scrolling","url":"/articles/joystick-scrolling"},{"text":"Non-Latin / non-ASCII characters don't render correctly","url":"/articles/character-encoding"},{"text":"How to view and download previous versions of 3D WebView","url":"/articles/previous-versions"},{"text":"How to detect something in a web page, like a button click","url":"/articles/detect-something-in-web-page"},{"text":"How to allow a web page go fullscreen","url":"/articles/fullscreen"},{"text":"How to handle large files (Chromium, GeckoView) with Git","url":"/articles/git-large-files"},{"text":"Unable to autoplay video or audio","url":"/articles/autoplay"},{"text":"How to make a curved webview","url":"/articles/curved-webview"},{"text":"How to pronounce Vuplex","url":"/articles/how-to-pronounce-vuplex"},{"text":"How to use the Keyboard prefab with a Unity Input Field or TextMesh Pro Input Field","url":"/articles/how-to-use-keyboard-prefab-with-unity-input-field"},{"text":"How to render a webview on a custom 3D object or mesh","url":"/articles/custom-3d-object"},{"text":"How to resize a webview","url":"/articles/how-to-resize-webview"},{"text":"How to exclude 3D WebView from a build","url":"/articles/exclude-from-build"},{"text":"How to detect when a link is clicked or make links open in the default browser app","url":"/articles/intercept-links"},{"text":"How to enable a network proxy","url":"/articles/network-proxy"},{"text":"How to download files","url":"/articles/downloading-files"},{"text":"How to control video or audio in a web page","url":"/articles/how-to-control-media"},{"text":"Store comparison: Vuplex Store vs. Unity Asset Store","url":"/articles/store-comparison"},{"text":"How to purchase a bundle","url":"/articles/bundles"},{"text":"How to prevent a user from clicking links on a page / only allow the browser to navigate to whitelisted URLs?","url":"/articles/whitelist-urls"},{"text":"How to enable geolocation","url":"/articles/geolocation"},{"text":"How to show only a web page's video without the surrounding web page","url":"/articles/isolate-video"},{"text":"How can a web page determine whether it's running in 3D WebView or in a regular browser?","url":"/articles/determine-webview-via-js"},{"text":"How to display a copy of a webview / How to render the same webview in multiple places","url":"/articles/display-copy-of-webview"},{"text":"Some video streaming sites like Netflix aren't working","url":"/articles/blocked-video-streaming"},{"text":"How to get the browser's User-Agent string","url":"/articles/get-user-agent"},{"text":"How to find the version number of 3D WebView installed in a project","url":"/articles/version-number"},{"text":"How to download an order receipt invoice with your company's details (e.g. VAT tax ID)","url":"/articles/invoice"}]},{"title":"Windows and macOS","titleElementId":"windows-mac","links":[{"text":"Windows & macOS: How to enable MP4, H.264, or video streaming","url":"/articles/how-to-enable-proprietary-video-codecs"},{"text":"Windows & macOS: Some videos aren't working, such as MP4 files, YouTube live streams, Twitch, or Vimeo","url":"/articles/videos-not-working-windows-mac"},{"text":"Windows: How to resolve issues with long file paths","url":"/articles/windows-long-paths"},{"text":"Windows & macOS: How to change the Accept-Language header","url":"/articles/how-to-change-accept-language-header"},{"text":"Windows & macOS: What are the \"Vuplex WebView\" processes?","url":"/articles/chromium-processes"},{"text":"macOS: How to target the Mac App Store or notarize an app for distribution","url":"/articles/mac-app-store-and-notarization"},{"text":"Windows & macOS: ExcecuteJavaScript() unable to return the result due to the web page's Content Security Policy (CSP)","url":"/articles/standalone-javascript-result-blocked-by-csp"},{"text":"Windows: Does 3D WebView support touchscreens and touch gestures?","url":"/articles/standalone-touch-support"},{"text":"macOS: Chromium process failed to start","url":"/articles/mac-chromium-failed-to-start"},{"text":"Windows: Why new versions of 3D WebView don't support Windows 7 or 8","url":"/articles/legacy-windows"},{"text":"Windows & macOS: How to allow multiple instances of an app to use 3D WebView at the same time","url":"/articles/multiple-app-instances"},{"text":"Windows & macOS: How to customize the PDF viewer UI","url":"/articles/standalone-customize-pdf-viewer"},{"text":"Windows: Hardware acceleration support","url":"/articles/standalone-hardware-acceleration"},{"text":"Windows & macOS: browser engine backends - Chromium vs WebKit","url":"/articles/standalone-browser-engines"},{"text":"macOS: Why do the native Mac plugins come zipped in a ZippedMacPlugins.zip file?","url":"/articles/mac-plugin-files"}]},{"title":"Android","titleElementId":"android","links":[{"text":"3D WebView for Android: version comparison","url":"/articles/android-comparison"},{"text":"Android: How to enable or disable cleartext traffic (plain http:// URLs)","url":"/articles/how-to-enable-cleartext-traffic-on-android"},{"text":"Android: How to fix aliasing or enable mipmaps?","url":"/articles/how-to-fix-aliasing-on-Android"},{"text":"Android & iOS: How to enable the native on-screen keyboard","url":"/articles/how-to-enable-android-ios-keyboard"},{"text":"Android: How 3D WebView handles Java minification","url":"/articles/android-minification"},{"text":"Android: How to prevent the native keyboard from covering the input field on a web page","url":"/articles/android-prevent-keyboard-from-covering-input-field"},{"text":"Android: Website doesn't render on Meta Quest","url":"/articles/android-website-doesnt-render-on-oculus-quest"},{"text":"Android & iOS: Clicking doesn't work on a specific website","url":"/articles/mobile-clicking-doesnt-work-on-specific-site"},{"text":"Android: How to access or set native settings (WebSettings)","url":"/articles/android-web-settings"},{"text":"How to use both Android packages (Gecko and non-Gecko) together","url":"/articles/using-both-android-packages-together"},{"text":"Android & Android Gecko: Limitations with loading pages from StreamingAssets when \"Split Application Binary\" is enabled","url":"/articles/android-split-binary-streaming-assets"},{"text":"Android: How to launch the camera when selecting a file","url":"/articles/android-file-selection-camera"}]},{"title":"Android Gecko","titleElementId":"android-gecko","links":[{"text":"3D WebView for Android: version comparison","url":"/articles/android-comparison"},{"text":"Android: How to fix aliasing or enable mipmaps?","url":"/articles/how-to-fix-aliasing-on-Android"},{"text":"Android Gecko: App audio stops or mutes unexpectedly on Meta Quest","url":"/articles/oculus-quest-app-audio-stops"},{"text":"Android Gecko: \"Duplicate class\" build errors","url":"/articles/android-gecko-duplicate-class-build-error"},{"text":"Android Gecko: Can the WAKE_LOCK permission be removed?","url":"/articles/android-gecko-wake-lock"},{"text":"Android Gecko: App crashes due to a SIGSEGV error in libxul.so","url":"/articles/android-gecko-crash"},{"text":"Android: How 3D WebView handles Java minification","url":"/articles/android-minification"},{"text":"Android & iOS: Clicking doesn't work on a specific website","url":"/articles/mobile-clicking-doesnt-work-on-specific-site"},{"text":"How to use both Android packages (Gecko and non-Gecko) together","url":"/articles/using-both-android-packages-together"},{"text":"Android & Android Gecko: Limitations with loading pages from StreamingAssets when \"Split Application Binary\" is enabled","url":"/articles/android-split-binary-streaming-assets"},{"text":"Android Gecko: Unity version requirements","url":"/articles/android-gecko-requirements"}]},{"title":"iOS","titleElementId":"ios","links":[{"text":"iOS & visionOS: App crashes at startup with the message \"[UnityViewControllerBase getInstance]: unrecognized selector sent to class...\".","url":"/articles/apple-graphics-plugin-conflict"},{"text":"Android & iOS: How to enable the native on-screen keyboard","url":"/articles/how-to-enable-android-ios-keyboard"},{"text":"iOS & visionOS: What is 3D WebView's fallback video implementation?","url":"/articles/fallback-video"},{"text":"iOS, visionOS, & UWP: Limitations of hover and drag interactions","url":"/articles/hover-and-drag-limitations"},{"text":"iOS: How to enable bitcode?","url":"/articles/how-to-enable-bitcode"},{"text":"Android & iOS: Clicking doesn't work on a specific website","url":"/articles/mobile-clicking-doesnt-work-on-specific-site"},{"text":"iOS: How to prevent phones from heating up?","url":"/articles/heat"}]},{"title":"visionOS","titleElementId":"visionos","links":[{"text":"iOS & visionOS: App crashes at startup with the message \"[UnityViewControllerBase getInstance]: unrecognized selector sent to class...\".","url":"/articles/apple-graphics-plugin-conflict"},{"text":"iOS & visionOS: What is 3D WebView's fallback video implementation?","url":"/articles/fallback-video"},{"text":"iOS, visionOS, & UWP: Limitations of hover and drag interactions","url":"/articles/hover-and-drag-limitations"}]},{"title":"UWP","titleElementId":"uwp","links":[{"text":"iOS, visionOS, & UWP: Limitations of hover and drag interactions","url":"/articles/hover-and-drag-limitations"},{"text":"UWP: Web page doesn't render or work correctly","url":"/articles/uwp-browser-issues"},{"text":"UWP: Clicking and scrolling doesn't work on some web pages or in iframes","url":"/articles/uwp-iframe-limitation"},{"text":"UWP: Rendering limitations that can occur in 3D rendering mode","url":"/articles/uwp-3d-rendering-limitations"}]},{"title":"WebGL","titleElementId":"webgl","links":[{"text":"Limitations of 2D WebView for WebGL","url":"/articles/webgl-limitations"},{"text":"WebGL: Modifications that 2D WebView makes for fullscreen","url":"/articles/webgl-fullscreen"},{"text":"WebGL: How to embed content from sites like YouTube, Twitch, or Vimeo","url":"/articles/webgl-embeds"},{"text":"WebGL: Iframes disabled due to Cross-Origin-Embedder-Policy header","url":"/articles/webgl-cross-origin-embedder-policy"}]}]}}