Unity WebView 插件⭐️(八)核心模块 网络—Web

举报
呆呆敲代码的小Y 发表于 2021/09/27 09:53:50 2021/09/27
【摘要】 📢前言该文章是WebView 插件系列文章,传送门:浏览器插件3D WebView专栏上一篇文章对3D WebView 插件的 CanvasWebViewPrefab 做了一个详细的介绍说明那本篇文章就来介绍下 Web的说明和使用方法 🔔核心模块 网络—WebWeb 是模块的顶级静态类。它包含用于 配置模块 和 创建资源 的静态方法。Web公共属性默认插件类型static void D...

📢前言

该文章是WebView 插件系列文章,传送门:浏览器插件3D WebView专栏

上一篇文章对3D WebView 插件CanvasWebViewPrefab 做了一个详细的介绍说明

那本篇文章就来介绍下 Web的说明和使用方法

请添加图片描述


🔔核心模块 网络—Web

Web 是模块的顶级静态类。

它包含用于 配置模块创建资源 的静态方法。

Web公共属性
在这里插入图片描述
默认插件类型
static void DefaultPluginType { get; }
获取为当前平台安装的默认 3D WebView 插件类型。


Web公共方法
在这里插入图片描述
1.清除所有数据
static void ClearAllData()
清除 webview 实例之间保留的所有数据,如 cookie、存储和缓存资源。

重要提示
在 Windows 和 macOS 上,只能在初始化任何 webview 之前调用此方法。
在通用 Windows 平台上,由于 UWP 限制,此方法无法清除 cookie。

2.创建材料
static void CreateMaterial(Action<Material> callback)
与其他版本的CreateMaterial() 一样,除了它使用回调而不是任务以与旧版 .NET 兼容。

3.创建材料
static Task<Material> CreateMaterial()
创建 webview 可用于渲染的材质和纹理。

4.创建纹理
static void CreateTexture(float width, float height, Action<Texture2D> callback)
与其他版本的CreateTexture() 一样,除了它使用回调而不是 Task 以与旧版 .NET 兼容。

5.创建纹理
static Task<Texture2D> CreateTexture(float width, float height)
使用给定的宽度和高度以 Unity 单位(而不是像素)创建一个特殊的纹理,webview 可以使用该纹理进行渲染。webview 插件在初始化或调整 webview 大小时会自动调整纹理大小,因此在实践中,您可以简单地使用 1x1 的尺寸,例如CreateTexture(1, 1).

6.创建视频素材
static void CreateVideoMaterial(Action<Material> callback)
与CreateMaterial()类似,不同之处在于它创建了一个 webview 可用于在 iOS 上渲染视频的材质。在其他平台上,此方法返回null.

7.创建网页视图
static IWebView CreateWebView()
以与平台无关的方式创建新的 web 视图。创建IWebView后,必须通过调用其Init()方法之一对其进行初始化。

例子
var material = await Web.CreateMaterial();
// Set the material attached to this GameObject so that it can display the web content.
GetComponent<Renderer>().material = material;
var webView = Web.CreateWebView();
webView.Init(material.mainTexture, 1, 1);
webView.LoadUrl("https://vuplex.com");

重要的提示
WebViewPrefab和CanvasWebViewPrefab负责为您创建和管理IWebView实例,因此如果您需要在预制件之外创建 webview(例如,将其连接到您自己的自定义 GameObject),您只需直接调用此方法。

8.启用远程调试
static void EnableRemoteDebugging()
启用远程调试。

9.设置自动播放已启用
static void SetAutoplayEnabled(bool enabled)
设置页面是否可以自动播放带音频的视频。默认是禁用的。

重要笔记

  • 在 Windows 和 macOS 上,只能在初始化任何 webview 之前调用此方法。
  • 此方法适用于除3D WebView for UWP之外的每个包,因为底层 UWP WebView 控件不允许自动播放带音频的视频。

10.设置忽略证书错误
static void SetIgnoreCertificateErrors(bool ignore)
默认情况下,浏览器会阻止加载带有无效 SSL 证书的 https URL。但是,此方法可用于忽略证书错误。

重要笔记

  • 在 Windows 和 macOS 上,只能在初始化任何 webview 之前调用此方法。
  • 此方法适用于除3D WebView for UWP之外的每个包。对于 UWP,证书必须在 Package.appxmanifest 文件中列入白名单。

11.设置存储启用
static void SetStorageEnabled(bool enabled)
控制 cookie、localStorage 和缓存资源等数据是否在 webview 实例之间持久化。默认为true,但可以将其设置为false“隐身模式”。

重要笔记

  • 在 Windows 和 macOS 上,只能在初始化任何 webview 之前调用此方法。
  • 在通用 Windows 平台上,由于 UWP 限制,此方法不会禁用 cookie。

12.设置用户代理
static void SetUserAgent(string userAgent)
全局配置所有 webviews 以使用自定义User-Agent。

重要的提示
在 Windows 和 macOS 上,只能在初始化任何 webview 之前调用此方法。

13.设置用户代理
static void SetUserAgent(bool mobile)
全局配置所有 webviews 以使用移动或桌面 User-Agent。默认情况下,webviews 使用浏览器引擎的默认 User-Agent,但您可以通过调用Web.SetUserAgent(true)或使用Web.SetUserAgent(false).


🎄示例

1.设置存储启用
插件中的WebView都是默认开启的,也就是说会有一个数据持久化,形成一个缓存的效果
就比如我们用百度搜索了一个东西,下次使用百度的时候,上次搜索的东西是会显示在搜索框的!
这里设置取消之后,就相当于开启了一个简易的隐身模式,不会再进行数据持久化缓存。

不过要注意,需要在webview 初始化之前调用!

      //设置取消存储启用
       Web.SetStorageEnabled(false);

2.设置自动播放
控制网页中的视频是否会自动播放,默认是不会自动播放的,我们可以手动开启,也是要在初始化之前调用

      //设置启用网页视频自动播放
       Web.SetAutoplayEnabled(true);

💬总结

Web是模块的顶级静态类,我们在使用的时候一般不会用到这个地方太多

一般是偏向于插件的深度逻辑了,主要是用于配置模块和创建资源的静态方法。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200