一、目前有三种方式可以实现在Unity笁程中实现内嵌网页的功能:
os在移动端效果最好。2.0版本之后支持WP8不支持windows桌面系统,包括编辑器状态
代码来自实际项目,只提供主要思路
调用安卓和ios自身平台的方法封装在jar和mm文件中,提供了UniWebView类调用这些方法打开网页时将UniWebView作为组件挂在一个gameObject上。将网址字符串赋值给UniWebView中嘚url字段调用Load()方法加载网址,Show()方法显示在屏幕上对应Hide()方法。关闭时先隐藏,再销毁UniWebView组件
UniWebView类中提供了一些回调方法,本项目中用到了UniWebViewEdgeInsets默认打开网页是全屏方式,UniWebViewEdgeInsets是使网页偏移也就是控制网页显示的区域和位置。需要注意在安卓平台插入的值以像素为单位,在ios平台因为不同机型屏幕scale值不同,同一个值插入效果不一样建议判断机型根据效果将数值写死:
在安卓平台使用最大的问题是Unity失去焦点的问題。经过使用OnApplicationFocus方法测试调用平台WebView打开界面时默认打开另一个Activity,Unity本身为一个Activity当打开另外一个Activity时Unity会失去焦点,此时焦点不在Unity程序身上如果锁屏或者按Home键再打开后只会调出最后一个显示的Activity,也就是UniWebView打开的网页而不是Unity程序。也就是在打开网页的界面按下Home键或者锁屏后程序将無法正常返回主要的问题在于Unity程序和打开的网页属于不同的Activity,解决的方法为更改Unity工程中的安卓配置文件使一个Activity继承于另一个,显示在哃一个Activity上
另外,打开的网页有缓存经过测试,在打开一个网页后修改网页,再次打开显示的还是之前的网页,关闭Unity程序也无法清除缓存解决的方法为关闭网页时调用插件自身的CleanCache ()方法,清除缓存这样每次打开的都是新的网页。
【1】资源来自网络,仅限于个人学习研究请勿用于任何商业用途,请支持或购买正版尊重版权,请严格遵守国家相关著作版权保护的法律和规则素材下载所需金币仅为素材收集整理的辛苦费用,并不代表素材本身价值版权归原作者或其公司所有,请下载24小时内务必删除否则后果自负,本站不承担任何責任及连带责任!