unity里面打开网页接触了一些,没做深入研究,仅以简单展示网页为主。分为两类,一是PC端打开网页,二是android端打开网页。
网页插件或方案
-
- Unity之PC版,window。如果网页只是单独二维码图片,则采用www请求得到www.texture;
-
- Unity之PC版,window。如果网页不是单独一张二维码图片,有其他文字,样式,js等,使用插件WWebView(该插件开通了对UniWebView2 3的支持) 或者Embedded Browser
-
- Unity之安卓版,插件UniWebView。
1.www请求
www方法请求图片,请自行查找。
2.WWebView支持PC
2.1请求URL
通过Navigate(string url)方法请求
webView.Navigate(url);
2.2添加监听
方便知道请求情况和请求完成,可以注册监听OnStartNavigation,OnNavigationCompleted,OnNavigationFailed
请求url会触发OnStartNavigation的注册方法,请求完成会触发OnNavigationCompleted。另外请求超时会先触发OnStartNavigation,其参数url为res://ieframe.dll/navcancl.htm#https://google.com/ ,上面的例子可以看出,以#为分界线,#前面为取消请求的加载页,#后面为原先地址(google需要翻墙,不翻墙的话,请求超时)。
private void Awake()
{
//webView.OnEvaluateJavaScript +=;
webView.OnNavigationCompleted += CompletedListen;
webView.OnNavigationFailed += FailedListen;
webView.OnReceiveMessage += MessageListen;
webView.OnStartNavigation += StartNav;
}
public void CompletedListen(WWebView webView, string data)
{
Debug.Log("complete:" + data);
}
public void FailedListen(WWebView webView, int code, string url)
{
Debug.Log("fail:" + code + " url:" + url);
}
public void MessageListen(WWebView webView, string message)
{
Debug.Log("msg:" + message);
}
public void StartNav(WWebView webView, string url)