日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UniWebView3.8

發布時間:2023/12/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UniWebView3.8 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果我們要打開一個uniweb,同時需要關閉上一個網頁,可以寫一個uniwebbase,其他需要打開網頁的類只需要繼承這個類就可以重寫一些監聽事件。

using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public class UniwebBase : MonoBehaviour {public static UniWebView _view;public void CreatWebView(string url, GameObject init, Rect _docst=default(Rect), RectTransform _init = null, bool fullScreen = false){Destroy();//Debug.Log(url);init.name =init+"?"+ Guid.NewGuid().ToString();_view = init.AddComponent<UniWebView>();_view .listener = init.AddComponent<UniWebViewNativeListener>();UniWebViewNativeListener.AddListener(_view.listener);if (fullScreen){_view.rect = new Rect(0, 0, Screen.width, Screen.height);}else{if (_init){_view.ReferenceRectTransform = _init;}else{_view.Frame = _docst;}}UniWebViewInterface.Init(_view.listener.Name, (int)_view.rect.x, (int)_view.rect.y, (int)_view.rect.width, (int)_view.rect.height);_view. isPortrait = Screen.height >= Screen.width;_view.OnPageStarted += _view_OnPageStarted;//網頁完成_view.OnPageFinished += _view_OnPageFinished;//網頁發送消息_view.OnMessageReceived += _view_OnMessageReceived;_view.OnPageErrorReceived += _view_OnPageErrorReceived;_view.OnShouldClose += _view_OnShouldClose;SetView();_view.Load(url);_view.UpdateFrame();_view.Show(true, (UniWebViewTransitionEdge)4, 0.8f, () => Debug.Log("完成"));}public virtual void SetView(){_view.BackgroundColor = new Color(0, 0, 0, 0);///設置單擊web視圖中的鏈接是否應該在外部瀏覽器中打開頁面_view.SetOpenLinksInExternalBrowser(false);/// 設置在加載過程中是否顯示加載指示器。_view.SetShowSpinnerWhileLoading(true);_view.SetSpinnerText("加載中...");_view.SetHorizontalScrollBarEnabled(false);_view.SetVerticalScrollBarEnabled(false);/// 設置當滾動到頁面邊緣時,web視圖是否應該顯示彈跳效果。_view.SetBouncesEnabled(false);/// 設置web視圖是否支持縮放guesture來更改內容大小。_view.SetZoomEnabled(true);// _view.useToolbar=true;}public virtual void _view_OnPageStarted(UniWebView webView, string url){Debug.Log(url);}public virtual void _view_OnPageFinished(UniWebView webView, int statusCode, string url){Debug.Log(statusCode+" "+url);}public virtual void _view_OnMessageReceived(UniWebView webView, UniWebViewMessage message){}public virtual void _view_OnPageErrorReceived(UniWebView webView, int errorCode, string errorMessage){}public virtual bool _view_OnShouldClose(UniWebView webView){return true;}public void Destroy() {if (_view != null){Debug.Log("刪除");_view.OnPageStarted -= _view_OnPageStarted;_view.OnPageFinished -= _view_OnPageFinished;_view.OnMessageReceived -= _view_OnMessageReceived;_view.OnPageErrorReceived -= _view_OnPageErrorReceived;_view.OnShouldClose -= _view_OnShouldClose;_view.CleanCache();UniWebViewNativeListener.RemoveListener(_view.listener.Name);UniWebViewInterface.Destroy(_view.listener.Name);_view.name = _view.name.Split('?')[0];Destroy(_view);_view = null;}} }

這樣可以屏蔽uniwebview腳本里的Start,Awake,OnEnable?,OnDisable.并且在腳本增加public?Rect?rect這個屬性;

然后在屏蔽UniWebViewNativeListener這個腳本里的他自己定義的uniweb以及事件方法不然會出錯,

測試代碼

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class test3 : UniwebBase {public static test3 _instance;private static string url = "https://www.taobao.com/";public Rect _rect;void Awake(){_instance = this;}// Use this for initializationvoid Start(){GetComponent<Button>().onClick.AddListener(_test);}// Update is called once per framevoid Update(){}public void _test(){_instance.CreatWebView(url, this.gameObject, _rect);}override public void _view_OnMessageReceived(UniWebView webView, UniWebViewMessage message){base._view_OnMessageReceived(webView, message);} }

?

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class test1 : UniwebBase {public static test1 _instance;private static string url = "https://www.baidu.com/";public RectTransform _rect;void Awake(){_instance = this;}// Use this for initializationvoid Start () {GetComponent<Button>().onClick.AddListener(_test);}// Update is called once per framevoid Update () {}public void _test(){_instance.CreatWebView(url,this.gameObject, _init:_rect);}override public void _view_OnMessageReceived(UniWebView webView, UniWebViewMessage message){base._view_OnMessageReceived(webView, message);} }

設置兩個按鈕完美切換?

?

?

總結

以上是生活随笔為你收集整理的UniWebView3.8的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。