unity内嵌浏览器——UniWebView插件
这次突然被要求实现内嵌浏览器。在⽹上到处资料参考,下⾯⼏个链接的内容感觉很实⽤
分享⼀下这次⼼得吧,以下是个⼈感受,技术不太好,说错了敬请纠正。
2.导⼊之后就是这样,还有个参考Demo
在UniWebViewHelper⾥⾯加个⽅法
public static UniWebView CreateUniWebView(GameObject go, string url, float top, float left, float bottom, float right)
{
if (go == null || !go.activeSelf)
{
return null;
}
var view = go.GetComponent<UniWebView>();
if (view == null)
{
view = go.AddComponent<UniWebView>();unity 教程
}
view.insets = new UniWebViewEdgeInsets(UniWebViewHelper.ConvertPixelToPoint(top, false), UniWebViewHelper.ConvertPixelToPoint(left, true), UniWebViewHelper.ConvertPixelToPoint(bottom, false), UniWebViewHelper.ConvertPixelToPoint(right, true));
view.SetShowSpinnerWhenLoading(true);
view.immersiveMode = false;
view.url = url;
return view;
}
3.后⾯发现报红线了
发现这个⽅法没有,⽹上那个教程也没说这个⽅法,只能⾃⽴更⽣思考怎么写了,发现这个是界⾯显⽰⽅法,参考官⽅⽂档不知道怎么写好,只能换种思路,继续查“UniWebView案例”。
private static int ConvertPixelToPoint(float num, bool v)
{
#if UNITY_IOS && !UNITY_EDITOR
float scale = 0;
if(v)
{
scale = 1f * screenWidth / Screen.width;
}
else
{
scale = 1f * screenHeight / Screen.height;
}
return (int)(num*scale);
#endif
return (int)num;
5.创建⼀个新脚本OpenURL,(代码有点长,⼤家可以直接去上⼀个链接那⾥复制就⾏)using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class OpenURL : MonoBehaviour
{
public InputField _url;
public Button _enterBtn;
public Button _backBtn;
UniWebView _view;
private void Awake()
{
_Click.AddListener(OpenUrl);
_Click.AddListener(CloseUrl);
_backBtn.gameObject.SetActive(false);
}
public void OpenUrl()
if (_view != null)
{
_view.CleanCache();
}
if (_ == null)
{
return;
}
_view = UniWebViewHelper.CreateUniWebView(gameObject, "" + _, 100, 0, 50, 0); _view.OnLoadComplete += View_OnLoadComplete;
_view.Load();
}
private void View_OnLoadComplete(UniWebView webView, bool success, string errorMessage)
{
if (success)
{
// 显⽰ 加载完成的界⾯
webView.Show();
_backBtn.gameObject.SetActive(true);
}
else
{
// 输出 错误码
Debug.LogError("Something wrong in webview loading: " + errorMessage);
}
}
public void CloseUrl()
{
_view.Hide();
_view.OnLoadComplete -= View_OnLoadComplete;
Destroy(_view);
}
}
6.创建两个按钮和⼀个输⼊框,在canvas下挂OpenURL和UniWebView这两个脚本,记得给OpenURL挂按钮,那个UniWebView参数直接是在代码改变的,所以不⽤设置。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论