// Copyright (c) 2024 Vuplex Inc. All rights reserved. // // Licensed under the Vuplex Commercial Software Library License, you may // not use this file except in compliance with the License. You may obtain // a copy of the License at // // https://vuplex.com/commercial-library-license // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. using UnityEngine; namespace Vuplex.WebView { /// /// An interface implemented by a webview if it supports MovePointer(), /// which can be used to implement hover or drag interactions. /// /// /// For details on the limitations of hover and drag interactions on iOS and UWP, please see /// https://support.vuplex.com/articles/hover-and-drag-limitations. /// /// /// The Android Gecko package doesn't support the HTML Drag and Drop API (GeckoView limitation). /// /// /// /// var webViewWithMovablePointer = webViewPrefab.WebView as IWithMovablePointer; /// if (webViewWithMovablePointer == null) { /// Debug.Log("This 3D WebView plugin doesn't yet support IWithMovablePointer: " + webViewPrefab.WebView.PluginType); /// return; /// } /// // Move the pointer to (250px, 100px) in the web page. /// var normalizedPoint = webViewPrefab.WebView.PointToNormalized(250, 100); /// webViewWithMovablePointer.MovePointer(normalizedPoint); /// /// public interface IWithMovablePointer { /// /// Moves the pointer to the given normalized point in the web page. /// The optional `pointerLeave` parameter controls whether a pointerleave /// JavaScript event is fired to indicate that the pointer has left the webview. /// /// /// This method can be used to trigger hover effects in the page or can be used /// in conjunction with IWithPointerDownAndUp to implement /// drag interactions. /// void MovePointer(Vector2 normalizedPoint, bool pointerLeave = false); } }