unity3d游戏内嵌网页插件-uniwebview3
项目之前用的uniwebview2.x的版本,但是在2020年4月份ios审核不再支持UIWebView,需要使用WKWebview来替代,所以需要更新插件,
下面提供了百度网盘下载3.17版本链接:
提取码:vo9p
uniwebview3介绍如下:
位置和大小
UniWebView有两种方法可以确定Web视图应在屏幕上显示的位置。
#设定框
您可以使用Frame属性设置位置和大小。
#产地和大小
您可以在屏幕中定义一个rect并将其设置为Web视图的框架。UniWebView使用的坐标系是基于左上角的坐标。原点(0,0)是屏幕的最左上角。屏幕尺寸由Unity Screen类型定义为Screen.width和Screen.height:
在此坐标系中,您可以非常轻松地设置Web视图的位置和大小:
// Make the web view full screen:
webView.Frame = new Rect(0, 0, Screen.width, Screen.height);
// Make the web view take the bottom half of screen:
webView.Frame = new Rect(0, Screen.height, Screen.width, Screen.height / 2);
// Make the web view insets from all sides by 10 units:
webView.Frame = new Rect(10, 10, Screen.width - 20, Screen.height - 20);
尽管您可以像上面的最后一个示例一样设置单位的绝对数量,但由于设备的屏幕尺寸各不相同,因此在移动设备中几乎没有意义。因此,使用该Frame属性的正确方法是将其设置为当前屏幕高度和宽度的相对值。
如果您不关心屏幕解决方案和屏幕大小等问题,则固定值完全可以,但是要准确地适应所有目标设备非常困难。因此,我们建议仅在将Web视图的大小设置为屏幕的相对大小时才使用它。
如果要控制位置和大小,UniWebView支持另一种方法来从Unity UI和Canvas Scaler的“分辨率和设备独立性”概念中受益。
重要
Frame如果您使用“使用参考UI元素”中所述的方法(或者说,如果ReferenceRectTransform属性不是null),则该属性将被忽略。
ReferenceRectTransform是UniWebView可以设置引用的属性RectTransform。A RectTransform是您的UI元素的一部分,它定义了Rect附加到转换的。通过将画布与Canvas Scaler结合使用,可以将Unity UI设计为适合多种分辨率。如果您不熟悉它,建议您先阅读“多种分辨率的设计UI”。
您可以将UniWebView的位置和侧面定义为RectTransformUI元素中现有的位置和侧面。通常,您可以创建一个面板或任何其他UI元素,并将其用作参考矩形转换。通过设置ReferenceRectTransform为参考rect变换,UniWebView将调整自身大小并调整其大小以匹配rect的位置和大小。因此,您可以跳过计算Frame并适应具有不同尺寸和分辨率的设备。
有了后RectTransform,您可以设置属性:
RectTransform myUITransform = ...
webView.ReferenceRectTransform = myUITransform;
以下是lua代码参考如下:
local _webView = self.m_objUniWebViewObject:GetComponent(typeof("UniWebView"));
if _webView == nil then
_webView = self.m_objUniWebViewObject:AddComponent(typeof("UniWebView"));
_webView.Frame = UnityEngine.Rect.New(self.left,self.top,self.m_webPlay_notice.width/self.adjustSize,self.m_webPlay_notice.height/self.adjustSize);
_webView:Load(self.url)
else
_webView:CleanCache();
_webView:CleanCookie();
_webView:Load(self.url)
end
_webView:Show()
其中self.left,self.top是项目中适配计算的距离左边的宽度,以及距离上边底线的宽度,elf.m_webPlay_notice是界面中的一个空白透明的sprite,作为页面显示的父物体,以此为参照物,此项目中使用的是ngui,如果是ugui,则不用这么麻烦,直接可以使用ReferenceRectTransform 来设置