內嵌網頁 UniWebView 3 的使用


https://blog.csdn.net/qiaobinXU/article/details/81389468

 

基本配置

 

1、Url On Start

在UniWebView的Start() 方法里會加載url

2、Show On Start

勾選的話會在Start()方法里主動顯示。

未勾選的話需要主動調用Show()方法

3、Full Screan

全屏展示,勾選上的話會忽略Frame 和 Reference Rect Transform的設置

4、使用固定大小展示的話 設置 Frame的值,並且取消勾選Full Scream,以及

Reference Rect Transform 設置為None

5、Reference Rect Transform

引用一個Rect Transform並更改web view的大小以遵循該轉換。如果您正在使用具有多個分辨率支持的Unity UI,那么它是非常有用的。

6、Use Toolbar

勾選后只在ios已經mac上有用。包括關閉,前進,返回等。可以設置Toolbar Position 為Top,則在頂端顯示,Bottom 則在底端顯示。android的導航欄就有這些功能,所以不需要這個。

 

7、一旦UniWebView被Done按鈕或Back按鈕關閉,它將在默認情況下銷毀組件本身,以便盡快釋放資源。您將無法重用相同的UniWebView。如果想要顯示另一個頁面,則需要創建一個新的UniWebView。

 

監聽事件

1、OnPageFinished 當url加載完畢后調用

 

也可以使用方法作為委托偵聽器(delegate Listener)

參考: https://msdn.microsoft.com/en-us/library/018hxwa8.aspx

2、OnShouldClose

OnShouldClose是在web視圖即將關閉時發送給您的事件。用戶可以使用iOS上的“完成”按鈕或Android上的“后退”按鈕。一旦web view關閉,UniWebView組件也將被銷毀,以保持干凈。如果您在引用中保存web視圖(例如,我們在這里通過webView字段保存web視圖),那么很有可能將其設置為null。否則,如果你想要加入的話,你以后可能會遇到麻煩。

 

tips:

在Android上,“后退”按鈕將引導用戶返回到上一個頁面。如果沒有返回的頁面,它將發送OnShouldClose事件,如果返回true,則嘗試關閉web view。

3、EvaluateJavaScript  調用 JavaScript 方法

 

第一個參數:JavaScript 的方法

第二個參數:第二個參數是帶有UniWebViewNativeResultPayload的操作。payLoad也用於其他web view的方法回調,其中包含來自本機端的基本信息。這里我們只需要檢查下狀態碼,“0”表示一切正常。

4、OnMessageReceived

 

html里需要有

 

 

UniWebView In Depth

1、窗口坐標設置

示例:

 

2、OnOrientationChanged (Event)

當屏幕轉向的時候,Frame會相應變化。

 

3、ReferenceRectTransform (property)

將一個指向UI面板的值傳給ReferenceRectTransform,這樣可以跳過計算Frame值。

 

4、OnRectTransformDimensionsChange 

使用ReferenceRectTransform 屬性時,當屏幕轉向時不需要再手動添加OnOrientationChanged 事件。UniWebView已經做好了這塊。

除了上述情況,當你因為其它原因需要這個功能的時候,可以調用這個方法。

 

 

Transition

1、顯示/隱藏過渡

通過修改Show 和 Hide的參數

 

fade 淡入淡出效果

edge 出現/消失的方向 eg:UniWebViewTransitionEdge.Bottom 從底部出現

duration 持續時間

completionHandler:完成后回調

tip:這兩個方法有個bool返回值,每次只允許進行一個轉換,如果您試圖在上一個轉換打開時初始化另一個轉換,那么新的轉換將不會啟動,返回值將為false。

2、Web View Animation

UniWebView還支持在顯示web視圖時對其進行動畫處理。使用AnimateTo方法,就可以指定一個幀作為目標幀。通過使用此方法,您還可以設置動畫的持續時間和延遲,以便進行精細的控制。

 

 

Memory Management(內存管理)

1、在不需要時銷毀web視圖

 

2、如果web視圖的holder組件(本例中為MyMonoBehaviour組件)有可能被破壞,您可能還需要在MyMonoBehaviour中添加OnDestroy,並關閉web視圖以防止泄漏:

 

3、將一個監聽器添加到OnShouldClose事件中,在關閉用戶操作的web view時,Android和iOS將調用該事件。

 

tip:如果return false , 視圖不會被關閉。OnShouldClose讓我們有機會重寫關閉方法。

4、在使用webView的MyMonoBehaviour網站的其他部分,你可以在使用webView之前檢查它是否為null:

 

5、在不使用時清理緩存

當用戶瀏覽Internet時,它將創建一些緩存,包括緩存的圖像和響應,或者web頁面將一些內容存儲在本地存儲中。雖然在大多數情況下它不會占用內存,但是如果您沒有在這種情況下使用緩存,您可以調用CleanCache清除它們。

 

 

Messaging System

1、UniWebView通常情況下檢查所有從"uniwebview://"啟動的鏈接。OnMessageReceived事件將會收到UniwebViewMessage object

 

UniWebView消息傳遞系統還可以幫助您解析輸入

 

2、添加你自己的scheme

 

3、也可以設置"http"和"https"作為一個scheme,它將阻止所有web資源的加載並將它們發送給您。這給了一個檢查所有交通的機會。

eg:它的一個用例是您不希望您的用戶離開當前頁面。因此,您可以首先加載您的頁面,然后在OnPageFinished事件中,通過向UniWebView消息系統添加“http(s)”方案來禁用所有導航:

 

4、消息系統構建在URL和Unity的消息發送器上。這意味着您不能同時發送無限大小的數據。URL的最大允許長度與設備和系統版本不同。但是一個URL的安全長度是~16KB。如果你有什么大的東西從網頁發送到Unity並且遇到一些問題,最好把它們分成小塊。

 

Using JavaScript

1、JavaScript是一個強大的工具,可以交互,甚至可以更改Unity游戲中的web內容。UniWebView完全支持在web頁面中運行JavaScript。您不僅可以在頁面上運行現有的JavaScript代碼,還可以使用JavaScript定義自己的函數並將其添加到web視圖中

2、Adding

 

2、Executing

 

3、Disabling

如果您不使用任何JavaScript,可以通過uniwebview . setjavastenabled (false)禁用它。在此設置之后創建的所有web視圖都不支持JavaScript,在瀏覽非JavaScript內容時,它將提供更快的速度

 

Loading Local Files

1、如果將本地HTML文件放到StreamingAssets文件夾中,可以通過web view加載它們。StreamingAssets文件夾是“Assert”文件夾下的一個文件夾,其名稱為“StreamingAssets”。我們有一個helper方法UniWebViewHelper.StreamingAsseturlforpath可以幫助您在所有平台上獲得正確的路徑。您可以將HTML文件的相對路徑傳遞給此方法,並使用web視圖的load方法加載它。

 

假設有一個頁面的路徑為:Assets/StreamingAssets/local_www/index。html,你可以用以下代碼加載:

 

2、如果在Android build (obb文件)中使用“Split Application Binary”,則不應該將本地HTML文件放在StreamingAssets文件夾下。相反,您需要將它們放到Assets/Plugins/Android/ Assets/,然后您可以使用與普通流資產資源相同的方式從新的位置加載它。

 

3、有時,您可能希望將一些HTML文件下載到磁盤,然后在本地加載它們。放置下載文件的一個常用位置是Application.persistentDataPath。如果將文件放在此路徑下,請使用UniWebViewHelper.PersistentDataURLForPath方法獲取正確的路徑

 

注意,您可能還需要向Android manifest文件添加外部讀權限,因為persistentDataPath通常是SD卡上的一個位置。

 

Uploading

niWebView支持從您的設備的磁盤或從雲服務上傳文件到您的網站。格式:

 

當用戶單擊select file按鈕時,UniWebView將提示用戶從他們想要選擇的文件的位置。如果您將“接受”指定為image/*作為上面的示例,則只有照片源和圖像文件可用。您還可以將“accept”類型更改為更寬的*/*,這將導致所有類型的文件都是可選擇的。

 

Playing Videos

UniWebView.SetAllowAutoPlay(true)

UniWebView.SetAllowInlinePlay(true)
---------------------
作者:一碗粥_Ray
來源:CSDN
原文:https://blog.csdn.net/qiaobinXU/article/details/81389468?utm_source=copy
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM