前言
最近玩手机吃鸡,看到游戏内部就可以看到直播,黑科技啊!然后再网上搜索了一下,应该是在游戏中内嵌一个浏览器,直接访问的网页。大概思路应该是这样吧,不然就肯定是其他的什么黑科技。
用啥
找到了一个插件UniWebView,这个插件支持Android、IOS和Mac,不支持Windows。这个对于我这个级别的开发调式还是有一定的麻烦的。当然还有一个github上的插件,跟这个原理都差不多吧。github地址
怎么用
使用方法都很简单,调用UniWebView中的接口即可。按照步骤来:
●添加UniWebView在一个GameObject上
●对UniWebView.url赋值
● 可以设置一些在打开浏览器的时候的一些回调:
webView.OnLoadComplete += OnLoadComplete;
webView.OnReceivedMessage += OnReceivedMessage;
webView.OnEvalJavaScriptFinished += OnEvalJavaScriptFinished;
●这里OnLoadComplete 回调结构有点像www的写法。
void OnLoadComplete(UniWebView webView, bool success, string errorMessage) {
if (success) {
webView.Show();
} else {
Debug.LogError("Something wrong in web view loading: " + errorMessage);
}
●设置webview的长宽高,这里都可以直接在ui上面显示浏览器了。
webView.insets = new UniWebViewEdgeInsets(5,5,5,5);
●然后调用webView.Load()方法即可。
void OnLoadComplete(UniWebView webView, bool success, string errorMessage) {
if (success) {
webView.Show();
} else {
Debug.LogError("Something wrong in web view loading: " + errorMessage);
}
大致流程就是这样的了。具体流程可以看看官网,很是详细。然后下载下来的demo中的注释也很详细。
原理
这里的最基本的原理就是调用Android的WebView。webview可简单的理解为一个自带浏览器功能的activity。那里这里就会出现一些webview的一个问题,我没有真正用这个做过开发,所以找了一篇博客上面有一些处理在使用过程中遇到的问题的解决方案。然后到深处的原理的话,对Android也是半吊子,就不讲了。暂时写这么多吧,后面真正使用到这个插件的时候遇到什么问题再更新吧。