基于 UniWebView 3

官网教程 点击打开链接

最新版 插件下载链接

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class WebViewController : MonoBehaviour
{private UniWebView uniWebView;public RectTransform viewImage;public UniWebView GetUniWebView{get{if (uniWebView == null){uniWebView = GameObject.FindObjectOfType<UniWebView>();if (uniWebView == null){GameObject webViewGameObject = GameObject.Find("UniWebView");if (webViewGameObject == null)webViewGameObject = new GameObject("UniWebView");uniWebView = webViewGameObject.AddComponent<UniWebView>();uniWebView.ReferenceRectTransform = viewImage;}uniWebView.OnMessageReceived += OnMessageReceived;uniWebView.OnPageStarted += OnPageStarted;uniWebView.OnPageFinished += OnPageFinished;uniWebView.OnKeyCodeReceived += OnKeyCodeReceived;uniWebView.OnPageErrorReceived += OnPageErrorReceived;uniWebView.OnShouldClose += OnShouldClose;uniWebView.SetBackButtonEnabled(false);// 回退钮  物理按键}return uniWebView;}}private void OnPageErrorReceived(UniWebView webView, int errorCode, string errorMessage){Debug.Log("OnPageErrorReceived :" + string.Format("errorCode:{0},errorMessage{1}", errorCode, errorMessage));}private void OnKeyCodeReceived(UniWebView webView, int keyCode){Debug.Log("OnKeyCodeReceived keycode:" + keyCode);}private void OnPageFinished(UniWebView webView, int statusCode, string url){Debug.Log("OnPageFinished statusCode:" + string.Format("statusCode:{0},url{1}", statusCode, url));}private void OnPageStarted(UniWebView webView, string url){Debug.Log("OnPageStarted " + url);}///JS 调用 untiy3Dprivate void OnMessageReceived(UniWebView webView, UniWebViewMessage message){Debug.Log("OnMessageReceived :" + message.RawMessage);//      if (message.Path.Equals("game-over")) {//         var score = message.Args["score"];//         Debug.Log("Your final score is: " + score);////          // Restart the game after 3 second//            Invoke("OnReLoaded", 3.0f);//     }if (message.Path.Equals("game")){var score = message.Args["score"];var name = message.Args["name"];Debug.Log("Your final score is: " + score + "name :" + name);// Restart the game after 3 second//Invoke("OnReLoaded", 3.0f);if (GetUniWebView.isActiveAndEnabled){string content = string.Format("openParamOne({0});", int.Parse(score) * 2 + int.Parse(name) * 1);GetUniWebView.EvaluateJavaScript(content, (payload) => {if (payload.resultCode.Equals("0")){Debug.Log("Game Started!=========>");}else{Debug.Log("Something goes wrong: " + payload.data);}});}}}private bool OnShouldClose(UniWebView webView){webView.CleanCache();webView = null;return true;}private string url = "http://www.0000.com/TWeb.aspx";private void OnGUI(){url = GUILayout.TextField(url, GUILayout.Width(250), GUILayout.Height(80));if (GUILayout.Button("Load", GUILayout.Height(80))){OnLoaded();}if (GUILayout.Button("ReLoad", GUILayout.Height(80))){OnReLoaded();}if (GUILayout.Button("Close", GUILayout.Height(80))){OnClose();}if (GUILayout.Button("Call JS", GUILayout.Height(80))){OnCallJavaScript();}if (GUILayout.Button("GoBack", GUILayout.Height(80))){if (GetUniWebView.CanGoBack){GetUniWebView.GoBack();} }if (GUILayout.Button("GoForward", GUILayout.Height(80))){if (GetUniWebView.CanGoForward){GetUniWebView.GoForward();}}}private void OnLoaded(){GetUniWebView.Load(url);GetUniWebView.Show();}private void OnReLoaded(){if (GetUniWebView.isActiveAndEnabled){GetUniWebView.Reload();}}private void OnClose(){GetUniWebView.Hide();Destroy(GetUniWebView.gameObject);}///调用 JS 代码private void OnCallJavaScript(){if (GetUniWebView.isActiveAndEnabled){GetUniWebView.EvaluateJavaScript("openParam();", (payload) => {if (payload.resultCode.Equals("0")){Debug.Log("Game Started!");}else{Debug.Log("Something goes wrong: " + payload.data);}});}//          if (GetUniWebView.isActiveAndEnabled) //            {//             string content = string.Format ("openParam({0});", int.Parse(score) * 2 + int.Parse(name) * 1);//               GetUniWebView.EvaluateJavaScript(content, (payload)=>{//                    if (payload.resultCode.Equals("0")) {//                       Debug.Log("Game Started!");//                 } else {//                      Debug.Log("Something goes wrong: " + payload.data);//                    }//             });//           }}}

插件下载链接

关于 JS 调用 Unity3D  详细:https://docs.uniwebview.com/guide/working-with-code.html

UniWebView 3 使用心得相关推荐

  1. unity内嵌浏览器——UniWebView插件

    这次突然被要求实现内嵌浏览器.在网上到处找资料参考,下面几个链接的内容感觉很实用 https://blog.csdn.net/qq_37310110/article/details/79761844 ...

  2. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  3. 测试心得:微图书销售小程序

    测试心得:微图书销售小程序 前言 这个学期差不多也将近结束,经过大半个学期,从项目需求的确认和项目文档的编写,到一步步的设计与实现,现在终于到了测试阶段,但是我们在测试阶段也暴露出了很多bug,但是每 ...

  4. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  5. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档

    计算机会计实习心得 计算机会计实习心得1 毕业实践环节是大学生在完成全部课程后.走向社会之前最真实的一个模拟实验,对于我们财会专业的学生,平时注意注重理论学习,缺乏实践锻炼,因此实习显得尤为重要.在本 ...

  6. html5考试总结300字,期中考心得300字5

    为了检验学生半个学期所学的知识而进行的一次考试,有利于学生比较正式地检验自己平时的学习水平,根据这个成绩,学生可以及时的调整学习心态和方法,更有效率地进行下一阶段的学习,期中考试主要考察学生前半学期的 ...

  7. Assembly学习心得

    http://blog.csdn.net/etmonitor/ Assembly学习心得 说明: 最近开始准备把学到的.NET知识重新整理一遍,眼过千遍不如手过一遍,所以我准备记下我的学习心得,已备参 ...

  8. 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得

    [IT168 专稿]不少朋友已经在不经意间与Windows Server 2008系统进行了亲密接触,在一段时间的接触之后,不知大家对该系统的文件搜索功能会有什么样的体会?其实,Windows Ser ...

  9. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  10. 工作中InnoDB引擎数据库主从复制同步心得

    近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用的是DRBD+Heartbeat双主一从,由于此过程还是有别 ...

最新文章

  1. Android Studio项目结构
  2. 浅析java中的语法糖
  3. html div标签的 class属性是干嘛用的?
  4. 使用WebRTC开发Android Messenger:第1部分
  5. jdbc oracle 删除数据库连接,如何使用JDBC API从Oracle数据库中删除表?
  6. inner join 重复数据_Ramp;Python Data Science 系列:数据处理(2)
  7. dockerfile构建镜像
  8. Cisco 交换机配置文件存放位置及管理要点
  9. Eclipse中,对工作空间中的项目进行分组(在查询中,也可也选择这个分组)。
  10. Leetcode142. Linked List Cycle II环形链表2
  11. java sequence 生成器_分布式高效唯一ID生成器(sequence)
  12. RS485芯片介绍及典型应用电路
  13. 计算机主机启动不了系统怎么办,电脑蓝屏开不了机怎么办
  14. Python绘图 好用的网址
  15. 医学影像研究的重要性 计算机,计算机辅助医学影像诊查之关键学习技术研究.doc...
  16. mac如何查看wifi密码
  17. 作业5 - 团队展示
  18. txt文件编码批量转换器 2.11 官方版
  19. Two Year's Harvest
  20. win10网上邻居无法访问0x80004005

热门文章

  1. vwmare 15“无权输入许可证密钥...”与出现新问题hadoop集群无法启动
  2. ES6 推荐网络文档书籍
  3. c语言计算机二级知识点总结,计算机二级考试C语言知识点总结
  4. C语言知识点总结2022
  5. 最新hadoop大数据零基础入门高薪就业视频教程
  6. Android Socket通信
  7. Android socketnetty实现
  8. webstorm汉化之后出现乱码现象
  9. 寻找阿姆斯特朗数(北理乐学)
  10. mysql关联子查询_MySQL 关联子查询