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.WebViewTransport#setWebView(WebView)
WebView.WebViewTransport.setWebView(WebView)来传输新的 WebView。
返回
如果主机应用程序将创建新窗口,则此方法应返回 true ,在这种情况下,resultMsg 应发送到其目标。 否则,此方法应返回 false。
false从此方法返回,但也发送 resultMsg 将导致未定义的行为。
- 属性
注解
请求主机应用程序创建新窗口。 如果主机应用程序选择遵循此请求,则应从此方法返回 true ,创建新的 WebView 来托管窗口,将其插入视图系统,并将所提供的 resultMsg 消息作为参数发送到其目标。 如果主机应用程序选择不遵循请求,则应从此方法返回 false 。 此方法的默认实现不执行任何操作,因此返回 false。
应用程序通常不允许在 isUserGesture 标志为 false 时创建窗口,因为这可能是不需要的弹出窗口。
应用程序应注意新窗口的显示方式:不要简单地将其覆盖在现有 WebView 上,因为这可能会误导用户查看的站点。 如果应用程序显示主页的 URL,请确保也以类似的方式显示新窗口的 URL。 如果应用程序不显示 URL,请考虑完全禁止创建新窗口。
<b>注意:</b> 无法判断哪个页面请求了新窗口:请求可能源自 WebView 中的第三方 iframe。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。