Unity UniWebView内置浏览器插件
這是一個可以在APP內打開網頁的插件,功能比較完善,這里記錄一下使用
使用方法:
插件使用還是比較容易上手的,導入插件后,新建一個空物體,掛上UniWebView組件
 
 組件簡單清晰,每個部分的功能和名字相同,這里就不贅述了
我自己在使用中發現,當你在打開了網頁之后,使用返回鍵關閉時腳本會自動銷毀當前掛載UniWebView的對象,所以沒辦法在一個對象上重復打開其它網頁,需要每次使用的時候生成一個掛載UniWebView組件的對象,然后調用對應的方法來啟動網頁
啟動方法:
 UniWebView webView;
 webView.Load(URL)注意,這里的URL需要http:// 或者 https://開頭
webView.Show();
 這里記得Load之后再調用一下show方法 否則不會顯示網頁
 到這里你就可以簡單的使用這個插件在APP內打開內置瀏覽器了。
再說一下UniWebView 和unity的通信
 webView.OnMessageReceived 這個就是監聽方法,
 UniWebView 會監聽所有 uniwebview:// 開頭的 url,如果用戶點擊了一個這樣的鏈接,便會解析出一個UniWebViewMessage對象并且引發OnMessageReceived 事件
這里展示一個官方的例子,如點擊了這樣一個鏈接:uniwebview://move?direction=up&distance=1
 那么將被解析為:
此時,在你監聽的事件回調中就可以得到UniWebViewMessage,并且實現自己的邏輯,注意這里args是個字典,如果你在鏈接里放入了json的話,你的json就是存在args里的那一部分
void OnReceivedMessage(UniWebView webView, UniWebViewMessage message) {Debug.Log(message.rawMessage);if (string.Equals(message.path,"move")) {... ...} }還有很多其它的方法在這里就不講了,作者在腳本里有很詳細的注釋!
這里隨便說一下我遇到的一個問題,我使用的版本的最新的UniWebView 4.0 Unity是2020.1.0正式版。在4.0版本中 我根據官方的做法 如圖添加監聽委托后,并不能正確監聽到事件
 
 但是當我把添加方式換成了匿名函數的形式時,卻又可以正確監聽到事件了
出現這個情況的只有OnReceivedMessage方法,其它的監聽事件,如:OnPageStarted,OnPageFinished,OnShouldClose 都可以正常監聽(不管哪種添加委托的方式)很奇怪,這里我也沒弄懂原因,如果有知道的小伙伴歡迎留言討論
總結
以上是生活随笔為你收集整理的Unity UniWebView内置浏览器插件的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [html] 制作一个页面时,需要兼容P
- 下一篇: [html] svg如何转为字体图标?
