native.showPopup()

类型 函数
native.*
返回值 布尔值
修订 版本 2024.3703
关键词 电子邮件,短信,文本消息,商店,社交,showPopup
另请参阅 native.canShowPopup()

概述

显示指定服务的系统默认弹出窗口。 显示此弹出窗口将暂停 iOS 和 Android 上的应用程序。

此函数返回 `true` 或 `false`,指示是否显示了弹出窗口。 如果返回 `false`,则弹出窗口不可用或该服务在设备上不可用。

语法

native.showPopup( name )
native.showPopup( name, options )
name (必填)

字符串. 要显示的弹出窗口的字符串名称。 可以是以下之一

  • `"mail"` — 显示用于撰写电子邮件的弹出窗口。
  • `"sms"` — 显示用于撰写短信的弹出窗口。
  • `"appStore"` — 显示下载应用程序的应用商店的弹出窗口。 它将显示应用程序的详细信息,例如摘要、购买选项(如果尚未购买)以及撰写评论的选项。 这可用于显示当前正在运行的应用程序或您希望向用户推广的其他应用程序的详细信息。 目前,支持以下应用商店:iTunes 应用商店、Google Play 和 Amazon 应用商店。 如果传入 `"appStore"`,iTunes 应用商店要求在 `options` 表中设置 `iOSAppId`。
  • `"requestAppPermission"` — 显示用于请求应用权限的弹出窗口。
  • `"activity"` — 此设置与 活动 插件相关。
  • `"social"` — 此设置与 社交 插件相关。
  • `"addressbook"` — 此设置与 通讯录 插件相关。
  • `"quickLook"` — 此设置与 快速查看 插件相关。
options (可选)

. 指定弹出窗口可选属性的表 — 请参阅与 `name` 参数对应的以下部分。

mail(邮件)

以下键值对适用于 `options` 表(如果 `name` 设置为 `"mail"`)

sms(短信)

以下键值对适用于 `options` 表(如果 `name` 设置为 `"sms"`)

appStore / rateApp(应用商店/评价应用)

以下键值对适用于 `options` 表(如果 `name` 设置为 `"appStore"` 或 `"rateApp"`)

requestAppPermission(请求应用权限)

当前,此选项仅在 Android 上可用。 以下键值对适用于 `options` 表(如果 `name` 设置为 `"requestAppPermission"`)

activity(活动)

name 值为 "activity" 时,指的是 Activity 插件。

social(社交)

name 值为 "social" 时,指的是 Social 插件。

addressbook(通讯录)

name 值为 "addressbook" 时,指的是 通讯录 插件。

quickLook(快速查看)

name 值为 "quickLook" 时,指的是 快速查看 插件。

safariView(Safari 视图)

name 值为 "safariView" 时,指的是 Safari 视图 插件。

示例

电子邮件弹出窗口
-- Email popup with one file attachment
local options =
{
   to = "[email protected]",
   subject = "My High Score",
   body = "I scored over 9000!!! Can you do better?",
   attachment = { baseDir=system.DocumentsDirectory, filename="Screenshot.png", type="image/png" }
}
native.showPopup( "mail", options )
HTML 电子邮件弹出窗口
-- Email popup with multiple correspondents and attachments
local options =
{
   to = { "[email protected]", "[email protected]" },
   cc = { "[email protected]", "[email protected]" },
   subject = "My High Score",
   isBodyHtml = true,
   body = "<html><body>I scored over <b>9000</b>!!! Can you do better?</body></html>",
   attachment =
   {
      { baseDir=system.DocumentsDirectory, filename="Screenshot.png", type="image/png" },
      { baseDir=system.ResourceDirectory, filename="MyLogo.png", type="image/png" }
   }
}
native.showPopup( "mail", options )
短信弹出窗口(简单)
local options =
{
   body = "I scored over 9000!!! Can you do better?"
}
native.showPopup( "sms", options )
短信弹出窗口(多个收件人)
local options =
{
   to = { "1234567890", "9876543210" },
   body = "I scored over 9000!!! Can you do better?"
}
native.showPopup( "sms", options )
商店详情
local options =
{
   iOSAppId = "1234567890",
   supportedAndroidStores = { "google", "amazon" }
}
native.showPopup( "appStore", options )
其他应用的商店详情
local options =
{
   iOSAppId = "1234567890",
   androidAppPackageName = "my.other.app.",
   supportedAndroidStores = { "google", "amazon" }
}
native.showPopup( "appStore", options )
简单的应用权限请求
local options =
{
   appPermission = "Calendars"
}
native.showPopup( "requestAppPermission", options )
关键的应用权限请求
local function appPermissionsListener( event )
    for k,v in pairs( event.grantedAppPermissions ) do
        if ( v == "Camera" ) then
            print( "Camera permission granted!" )
        end
    end
end

local options =
{
    appPermission = "Camera",
    urgency = "Critical",
    listener = appPermissionsListener,
    rationaleTitle = "Camera access required",
    rationaleDescription = "Camera access is required to take photos. Re-request now?",
    settingsRedirectTitle = "Alert",
    settingsRedirectDescription = "Without the ability to take photos, this app cannot properly function. Please grant camera access within Settings."
}
native.showPopup( "requestAppPermission", options )