native.showWebPopup()

类型 函数
native.*
返回值
修订 版本 2024.3703
关键词 网页视图,网页弹出窗口,网页覆盖
另请参阅 native.newWebView()

概述

创建一个加载本地或远程网页的网页弹出窗口。

注意事项

通用

  • 一次只能显示一个网页弹出窗口对象。如果需要一次显示多个网页视图,请参阅 native.newWebView()

  • 网页弹出窗口不属于 OpenGL 画布,也不遵循显示对象层次结构,因此它将始终显示在普通显示对象的前面,包括图像、文本和矢量对象。

  • tvOS 不支持网页弹出窗口。

  • 网页弹出窗口对象无法移动或调整大小。

iOS

在 iOS 上,当在网页弹出窗口侦听器中检查 event.errorMessage 时,您可能偶尔会收到错误消息,例如 NSURLerrorDomain error -999。当异步加载被取消时,会返回此错误。Web Kit 框架委托将在对加载资源执行取消操作时收到此错误,但是如果下载被取消,NSURLConnectionNSURLDownload 委托将不会收到此错误。如果在网页弹出窗口仍在加载第一页时单击了其中的链接,则可能会发生此事件/错误。一般来说,可以忽略此错误。

Android

如果网页弹出窗口显示的是来自互联网的网页,则必须将 INTERNET 权限添加到 build.settings 文件中。如果网页弹出窗口仅显示不访问互联网的本地 HTML 文件,则不需要此权限。

settings =
{
    android =
    {
        usesPermissions =
        {
            "android.permission.INTERNET",
        },
    },
}

语法

native.showWebPopup( [x, y, width, height,] url, [options] )
x (可选)

数字. 对应于网页弹出窗口左边缘的 **x** 坐标。

y (可选)

数字. 对应于网页弹出窗口上边缘的 **y** 坐标。

width (可选)

数字. 网页弹出窗口的宽度。

height (可选)

数字. 网页弹出窗口的高度。

url (必填)

字符串. 本地或远程网页的 URL(包括本地 URL 的扩展名)。默认情况下,URL 被假定为指向远程服务器的绝对 URL。如果未指定 xywidthheight,则弹出窗口将占据整个屏幕。

options (可选)

. 包含弹出窗口附加参数的表 — 有关详细信息,请参阅下一节。

选项参考

这是一个可选表,您可以传递它,其中包含网页弹出窗口的附加选项。

local options =
{
    baseUrl = system.ResourceDirectory,  -- Default is nil
    hasBackground = false,  -- Default is true; not supported on Windows
    autoCancel = false,  -- Default is true; only supported on Android
    urlRequest = listener_function  -- Default is nil
}
baseUrl (可选)

字符串常量. 确定 native.showWebPopup() 的 URL 参数是被解释为相对 URL 还是绝对 URL。

  • 默认情况下,nil 表示 URL 是绝对 URL。
  • 要引用本地文件,请将基本 URL 设置为其中一个基本目录常量,例如 system.ResourceDirectory。然后,URL 参数将相对于该基本目录。
  • 对于远程文件,您还可以指定一个远程基址,URL 参数将相对于该远程基址。
hasBackground (可选)

布尔值. 控制弹出窗口是否具有不透明背景。如果未指定,则背景将是不透明的 (true)。Windows 不支持此选项(背景不能透明)。

autoCancel (可选)

布尔值. 将弹出窗口设置为在按下 Android 返回键并且没有更多网页历史记录可导航时自动关闭。默认值为 true

urlRequest (可选)

函数. 指定一个侦听器函数,该函数将拦截来自弹出窗口的所有 urlRequest 事件。这还提供了一种使用伪 URL 从网页传回信息的标准方法。伪 URL。例如

<form action="corona:close" />
    <input type="submit" />
</form>

在此示例中,当用户在网页弹出窗口中单击“提交”时,指定的侦听器函数将收到一个 urlRequest 事件对象,其 URL 属性设置为 "corona:close",从而允许应用程序做出相应的反应。请注意,侦听器函数必须返回 true,否则网页弹出窗口将关闭。如果没有 return 语句,则假定为 false

示例

local function listener( event )
    local shouldLoad = true

    local url = event.url
    if 1 == string.find( url, "corona:close" ) then
        -- Close the web popup
        shouldLoad = false
    end

    if event.errorCode then
        -- Error loading page
        print( "Error: " .. tostring( event.errorMessage ) )
        shouldLoad = false
    end

    return shouldLoad
end
 
local options =
{
    hasBackground = false,
    baseUrl = system.DocumentsDirectory,
    urlRequest = listener
}
native.showWebPopup( 50, 100, 220, 300, "localpage1.html", options )