首先需要用到插件 uniWebView3

unity 商店网址

https://assetstore.unity.com/packages/tools/network/uniwebview-3-92605

导入插件之后在文件夹中找到预制体拖入场景中

基本配置

1、Url On Start

在UniWebView的Start() 方法里会加载url

2、Show On Start

勾选的话会在Start()方法里主动显示。

未勾选的话需要主动调用Show()方法

3、Full Screan

全屏展示,勾选上的话会忽略Frame 和 Reference Rect Transform的设置

4、使用固定大小展示的话 设置 Frame的值,并且取消勾选Full Scream,以及

Reference Rect Transform 设置为None

5、Reference Rect Transform

引用一个Rect Transform并更改web view的大小以遵循该转换。如果您正在使用具有多个分辨率支持的Unity UI,它是非常有用的。

6、Use Toolbar

勾选后只在ios已经mac上有用。包括关闭,前进,返回等。可以设置Toolbar Position 为Top,则在顶端显示,Bottom 则在底端显示。android的导航栏就有这些功能,所以不需要这个。

7、一旦UniWebView被Done按钮或Back按钮关闭,它将在默认情况下销毁组件本身,以便尽快释放资源。您将无法重用相同的UniWebView。如果想要显示另一个页面,则需要创建一个新的UniWebView。

监听事件

1、OnPageFinished 当url加载完毕后调用

也可以使用方法作为委托侦听器(delegate Listener)

2、OnShouldClose

OnShouldClose是在web视图即将关闭时发送给您的事件。用户可以使用iOS上的“完成”按钮或Android上的“后退”按钮。一旦web view关闭,UniWebView组件也将被销毁,以保持干净。如果您在引用中保存web视图(例如,我们在这里通过webView字段保存web视图),那么很有可能将其设置为null。否则,如果你想要加入的话,你以后可能会遇到麻烦。

tips:

在Android上,“后退”按钮将引导用户返回到上一个页面。如果没有返回的页面,它将发送OnShouldClose事件,如果返回true,则尝试关闭web view。

3、EvaluateJavaScript  调用 JavaScript 方法

第一个参数:JavaScript 的方法

第二个参数:第二个参数是带有UniWebViewNativeResultPayload的操作。payLoad也用于其他web view的方法回调,其中包含来自本机端的基本信息。这里我们只需要检查下状态码,“0”表示一切正常。

4、OnMessageReceived

html里需要有

UniWebView In Depth

1、窗口坐标设置

示例:

2、OnOrientationChanged (Event)

当屏幕转向的时候,Frame会相应变化。

3、OnRectTransformDimensionsChange

使用ReferenceRectTransform 属性时,当屏幕转向时不需要再手动添加OnOrientationChanged 事件。UniWebView已经做好了这块。

除了上述情况,当你因为其它原因需要这个功能的时候,可以调用这个方法。

Transition

1、显示/隐藏过渡

通过修改Show 和 Hide的参数

fade 淡入淡出效果

edge 出现/消失的方向 eg:UniWebViewTransitionEdge.Bottom 从底部出现

duration 持续时间

completionHandler:完成后回调

tip:这两个方法有个bool返回值,每次只允许进行一个转换,如果您试图在上一个转换打开时初始化另一个转换,那么新的转换将不会启动,返回值将为false。

2、Web View Animation

UniWebView还支持在显示web视图时对其进行动画处理。使用AnimateTo方法,就可以指定一个帧作为目标帧。通过使用此方法,您还可以设置动画的持续时间和延迟,以便进行精细的控制。

Memory Management(内存管理)

1、在不需要时销毁web视图

2、如果web视图的holder组件(本例中为MyMonoBehaviour组件)有可能被破坏,您可能还需要在MyMonoBehaviour中添加OnDestroy,并关闭web视图以防止泄漏:

3、将一个监听器添加到OnShouldClose事件中,在关闭用户操作的web view时,Android和iOS将调用该事件。

tip:如果return false , 视图不会被关闭。OnShouldClose让我们有机会重写关闭方法。

4、在不使用时清理缓存

当用户浏览Internet时,它将创建一些缓存,包括缓存的图像和响应,或者web页面将一些内容存储在本地存储中。虽然在大多数情况下它不会占用内存,但是如果您没有在这种情况下使用缓存,您可以调用CleanCache清除它们。

Messaging System

1、UniWebView通常情况下检查所有从"uniwebview://"启动的链接。OnMessageReceived事件将会收到UniwebViewMessage object

UniWebView消息传递系统还可以帮助您解析输入

2、添加你自己的scheme

3、也可以设置"http"和"https"作为一个scheme,它将阻止所有web资源的加载并将它们发送给您。这给了一个检查所有交通的机会。

eg:它的一个用例是您不希望您的用户离开当前页面。因此,您可以首先加载您的页面,然后在OnPageFinished事件中,通过向UniWebView消息系统添加“http(s)”方案来禁用所有导航:

4、消息系统构建在URL和Unity的消息发送器上。这意味着您不能同时发送无限大小的数据。URL的最大允许长度与设备和系统版本不同。但是一个URL的安全长度是~16KB。如果你有什么大的东西从网页发送到Unity并且遇到一些问题,最好把它们分成小块。

Using JavaScript

1、JavaScript是一个强大的工具,可以交互,甚至可以更改Unity游戏中的web内容。UniWebView完全支持在web页面中运行JavaScript。您不仅可以在页面上运行现有的JavaScript代码,还可以使用JavaScript定义自己的函数并将其添加到web视图中

2、Add

2、Evaluate

当我在h5中进行了uniwebview    (scheme访问请求 )   插件会自动拦截下来然后获取其中的参数  例如下图中的  scheme的值是uniwebview     Path的值为actionArgs参数     Args["Key"]的值为value

Args["anotherKey"]的值为我们可以根据获取到的参数在unity端进行不同的操作

现在我想要实现微信登录内嵌H5游戏  首先我需要将SDK接好 然后通过授权拿到相应openid和uid

首先需要一个按钮  点击按钮会发送一个url请求(可以在index中写一个url请求的方法   然后在ts脚本中调用方法)

例如 uniwebview://game-over?score=11&life=222  这个url请求    当发送url请求时  unity端的uniwebview会进行默认监听uniwebview为前缀的url请求  然后在OnMessageReceived事件中能够获取到url中携带的参数   根据参数我们就可以进行不同的操作,例如微信登录。

还需要在egret中的index.html中写一个方法例如receive(uid,openid) 当我部署到服务器上后   我在unity端就可以通过加载这个H5的网址  然后在unity里面通过前面提到的EvaluateJavaScript方法    将receive(uid,openid) ;以字符串的方式传进去(如果是要进行微信登录  那就需要写一个传入 openid和uid的方法    在方法中获取到openid和uid后调用ts脚本中的向后端发送数据的方法向后端获取账号密码   拿到账号密码后直接进行登录)

如果不想使用任何JavaScript,可以通过uniwebview . setjavastenabled (false)禁用它。在此设置之后创建的所有web视图都不支持JavaScript,在浏览非JavaScript内容时,它将提供更快的速度。

注:如有错误和不明白之处请及时提出

查看原文请点击https://blog.csdn.net/qiaobinXU/article/details/81389468

unity 插件uniwebview 内嵌H5游戏相关推荐

  1. 小程序嵌套h5页面_快速小程序开发之微信小程序内嵌 H5

    简介:微信小程序中可以直接运行 web 页面,这一新组件 web-view 的产生,可能直接导致小程序数量迎来一波高峰.本篇博文将从业务选型,微信小程序后台配置,使用 web-view 完成登录业务以 ...

  2. app内嵌h5页面在ios手机端滑动卡顿的解决方法

    app内嵌h5页面在ios手机端滑动卡顿的解决方法 参考文章: (1)app内嵌h5页面在ios手机端滑动卡顿的解决方法 (2)https://www.cnblogs.com/1rookie/p/11 ...

  3. 小程序内嵌H5、H5回跳至小程序、小程序打开公众号中的文章

    一.小程序内嵌H5 1.前期准备:在微信公众平台小程序开发  -->  开发管理  -->   开发设置中配置业务域名. 2.语句: <web-view src="&quo ...

  4. 微信小程序与webview H5交互(内嵌H5跳转原生页面)

    在开发中,使用web-view组件内嵌H5页面是非常常见的,但很多人不知道webview内嵌H5如何与原生小程序 交互.下面介绍下实现微信小程序与webview H5交互的方法. web-view功能 ...

  5. 微信公众号、内嵌H5字体受微信字体大小影响问题的解决方案

    微信公众号.内嵌H5字体受微信字体大小影响问题的解决方案,代码也是之前网上找的,现在记录一下 //微信公众号禁止设置老年字体 ;(function() {if (typeof WeixinJSBrid ...

  6. 小程序嵌套h5页面_微信小程序内嵌h5页面

    概况 使用 标签能在小程序中打开外部网页,但是要打开的网页的域名必须跟小程序的业务域名(业务域名可以在小程序的后台管理界面添加)一致,否则在真机上是打不开的.如果开发工具上勾选了'不校验域名',在开发 ...

  7. 实现微信小程序web-view内嵌H5中的下载功能(大文件切片下载)

    实现微信小程序内嵌H5中的下载功能 一.项目场景: 难点 解决方案: 1.H5微信小程序: a.首先必不可少的是安装jweixin-module模块: b.在main.js中将依赖绑定: c.H5对应 ...

  8. UNI-APP在自定义组件中内嵌H5/Html网页,可自定义webview大小,加载不闪屏

    问题描述: UNI-APP在自定义组件中内嵌H5/Html网页时,通过内置组件 web-view 实现(如下),发现会自动铺满整个页面,不可控制大小(默认充满屏幕不可控制大小) <web-vie ...

  9. 【Appium】测试时遇到手机内嵌H5页面的切换问题

    前言:H5页面简单理解就是在手机内嵌套了一些网页格式的信息,可以让手机的应用看起来更丰富一些. 而当手机内嵌H5页面时,常规的app定位方法就没法使用了,我们需要先切换到H5页面才能进行下一步的定位, ...

  10. 前端企业微信开发内嵌H5记录

    前端企业微信开发内嵌H5记录(Vue) 文章目录 前端企业微信开发内嵌H5记录(Vue) 一.引入相应JS-SDK 1.JS-SDK 二.授权(网页授权) 1.构造网页授权链接 2.发起授权 3.注入 ...

最新文章

  1. P3175 [HAOI2015]按位或(Min - Max容斥,FMT,概率期望,全网最清晰的题解!)
  2. oracle bulk collect
  3. umi搭建react+antd项目(一)环境配置
  4. OO实现ALV TABLE 八:ALV的布局功能
  5. 关于UAC执行级别的研究
  6. Docker远程TLS管理
  7. java 鼠标精灵_纯Java实现跨平台鼠标键盘模拟、找图找色,Java版按键精灵
  8. 聪明的ITPRO之二IT人做事要“圆”
  9. 特斯拉线圈怎么用_无线快充居然是特斯拉发明的?不愧是发明家
  10. 计算机中心pdca,信息中心日常运维工作PDCA持续改进.docx
  11. 身份证号码校验(前端,java)
  12. 398高校毕业设计选题
  13. Xshell 6的 InstallShield: 1628 完成基于脚本的安装失败
  14. JAVA语言编程练习--图形界面--简易登录界面
  15. PyCharm中的iCCP: known incorrect sRGB profile报错问题
  16. 安卓开发5-fragment和activity
  17. c语言作业 电影院选座系统,c语言编程 电影院票务系统
  18. uniapp简单的身份证照片(正反面)上传
  19. JS实现 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
  20. python3多行输入字符串_详解Python3 定义一个跨越多行的字符串的多种方法

热门文章

  1. Roll A Ball 案例学习
  2. squid服务的应用 转
  3. c语言程序从源代码到二进制机器码,C语言源代码转变为可执行程序的过程
  4. Spring Boot教程系列
  5. 运维工程师mysql面试题及答案_系统运维工程师面试题及参考答案
  6. 服务器挂机自动签到京东,解放双手,什么值得买自动签到京东自动签到给你更多时间享受生活...
  7. 微软走进云南为网吧提供特价正版软件
  8. Windows下安装Telnet工具
  9. vue实现codemirror代码编辑器中的SQL代码格式化功能
  10. matlab导出prn文件怎么打开,prn文件怎么打开?prn是什么意思?