WebChromeClient.OnCreateWindow(WebView, Boolean, Boolean, Message) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
請主機應用程式建立一個新視窗。
[Android.Runtime.Register("onCreateWindow", "(Landroid/webkit/WebView;ZZLandroid/os/Message;)Z", "GetOnCreateWindow_Landroid_webkit_WebView_ZZLandroid_os_Message_Handler")]
public virtual bool OnCreateWindow(Android.Webkit.WebView? view, bool isDialog, bool isUserGesture, Android.OS.Message? resultMsg);
[<Android.Runtime.Register("onCreateWindow", "(Landroid/webkit/WebView;ZZLandroid/os/Message;)Z", "GetOnCreateWindow_Landroid_webkit_WebView_ZZLandroid_os_Message_Handler")>]
abstract member OnCreateWindow : Android.Webkit.WebView * bool * bool * Android.OS.Message -> bool
override this.OnCreateWindow : Android.Webkit.WebView * bool * bool * Android.OS.Message -> bool
參數
- view
- WebView
這個 WebView 是新視窗請求的來源。
- isDialog
- Boolean
true 如果新視窗應該是對話框,而不是全尺寸視窗。
- isUserGesture
- Boolean
true 如果請求是由使用者手勢發起,例如使用者點擊連結。
- resultMsg
- Message
當建立新的 WebView 時,應發送的訊息。 resultMsg.obj是一個 WebView.WebViewTransport 物件。 此資料應用於傳輸新的 WebView,方法是呼叫 WebView.WebViewTransport#setWebView(WebView)
WebView.WebViewTransport.setWebView(WebView)。
傳回
如果主機應用程式會建立新視窗,這個方法應該會回傳,這時 resultMsg 應該會傳送 true 到目標。 否則,此方法應返回 false。 從此方法回傳 false 同時傳送 resultMsg 會導致行為未定義。
- 屬性
備註
請主機應用程式建立一個新視窗。 若主機應用程式選擇接受此請求,應以此方法返回 true ,建立新的 WebView 來架設視窗,並將其插入檢視系統,並將提供給的 resultMsg 訊息以新 WebView 作為參數傳送給目標。 若主機應用程式選擇不執行請求,應以此方法返回 false 。 此方法的預設實作不做任何事,因此返回 false。
當 isUserGesture 旗標為假時,應用程式通常不應該允許建立視窗,因為這可能是不想要的彈出視窗。
應用程式應謹慎顯示新視窗:不要僅僅將其覆蓋在現有的 WebView 上,否則可能會誤導使用者,誤以為他們正在瀏覽哪個網站。 如果你的應用程式顯示主頁的網址,請確保也以類似方式顯示新視窗的網址。 如果你的應用程式沒有顯示網址,可以考慮完全不允許建立新視窗。
<b>注意:</b> 沒有可靠的方法能判斷是哪個頁面請求了新視窗:請求可能來自 WebView 內的第三方 iframe。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。