类型 函数 库 native.* 返回值 布尔值 修订 版本 2024.3703 关键词 电子邮件,短信,文本消息,商店,社交,showPopup 另请参阅 native.canShowPopup()
显示指定服务的系统默认弹出窗口。 显示此弹出窗口将暂停 iOS 和 Android 上的应用程序。
此函数返回 `true` 或 `false`,指示是否显示了弹出窗口。 如果返回 `false`,则弹出窗口不可用或该服务在设备上不可用。
native.showPopup( name ) native.showPopup( name, options )
字符串. 要显示的弹出窗口的字符串名称。 可以是以下之一
表. 指定弹出窗口可选属性的表 — 请参阅与 `name` 参数对应的以下部分。
以下
以下
以下
当前,此选项仅在 Android 上可用。 以下
`appPermission` — 单个 字符串 或 数组,其中每个字符串都是要请求的应用权限。有效选项包括以下
`"BodySensors"` — 对应于 Android 上的 `SENSORS` 权限组。仅适用于运行版本 4.4W 及更高版本的 Android 设备。
`"Calendars"` — 对应于 Android 上的 `CALENDAR` 权限组。
`"Camera"` — 对应于 Android 上的 `CAMERA` 权限组。
`"Contacts"` — 对应于 Android 上的 `CONTACTS` 权限组。
`"Location"` — 对应于 Android 上的 `LOCATION` 权限组。
`"Microphone"` — 对应于 Android 上的 `MICROPHONE` 权限组。
`"Phone"` — 对应于 Android 上的 `PHONE` 权限组。
`"SMS"` — 对应于 Android 上的 `SMS` 权限组。
`"Storage"` — 对应于 Android 上的 `STORAGE` 权限组。
在 Android 上,这也可以是 `build.settings` 的 `usesPermissions` 表中任何内容的名称,例如 `"android.permission.READ_SMS"` 或 `"com.android.voicemail.permission.ADD_VOICEMAIL"`。Android 权限组 的全名(例如 `"android.permission-group.STORAGE"` 或 `"android.permission-group.PHONE"`)也有效。
要在 Android 上正确使用应用权限,您需要将对应于
`urgency` — 表示此权限请求对运行应用的紧急程度的 字符串。 必须是以下值之一
`"Low"` — 这是默认紧急级别。 它表示某些次要功能依赖于应用权限,但无需此权限即可体验应用的大部分功能。 这些请求只是请求权限,如果请求被拒绝,则不会再采取其他措施来更改用户的决定。 例如,`"Location"` 权限不是使用相机的强制性方面。
`"Normal"` — 此应用的一个重要功能依赖于应用权限。 虽然应用可以在没有权限的情况下运行,但体验中将缺少很大一部分。 如果紧急程度为 `"Normal"`,并且用户拒绝了应用权限请求,则将显示应用权限说明对话框,以解释权限请求背后的原因。 例如,对于社交媒体应用,访问 `"Contacts"` 对于向您的联系人发送好友请求很有用,但应用可以在没有它的情况下运行。
`"Critical"` — 此应用的基本功能依赖于应用权限,并且必须获得访问权限。 例如,`"Camera"` 访问权限对于二维码阅读器至关重要。 此紧急级别与 `"Normal"` 具有所有相同的行为,但如果选择了“不再询问”选项,则下次请求此权限时,将出现设置重定向对话框,提示用户在**设置**中授予权限。
`listener` — 支持基本 弹出事件 的 侦听器。 此外,对于 `"requestAppPermission"`,它支持以下属性
event.grantedAppPermissions
— 包含刚刚授予应用的每个应用权限的字符串表示形式的表格。在 Android 上,对于没有usesPermission
名称。usesPermission
名称的混合。
event.deniedAppPermissions
— 包含刚刚请求但被应用拒绝的每个应用权限的字符串表示形式的表格。在 Android 上,对于没有usesPermission
名称。usesPermission
名称的混合。
event.neverAskAgain
— 一个布尔值,对应于如果多次请求应用权限时出现的“不再询问”复选框。此值是基于true
,而另一个权限可能为 false
。
rationaleTitle
— 字符串,包含应用权限说明对话框的标题。如果 urgency
设置为 "Low"
(低),则此选项将被忽略。
rationaleDescription
— 字符串,包含应用权限说明对话框的描述。如果 urgency
设置为 "Low"
(低),则此选项将被忽略。
settingsRedirectTitle
— 字符串,包含设置重定向对话框的标题。此选项仅在 urgency
设置为 "Critical"
(关键)时适用。
settingsRedirectDescription
— 字符串,包含设置重定向对话框的描述。此选项仅在 urgency
设置为 "Critical"
(关键)时适用。
name
值为 "activity"
时,指的是 Activity 插件。
name
值为 "addressbook"
时,指的是 通讯录 插件。
name
值为 "quickLook"
时,指的是 快速查看 插件。
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 )
-- 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 )
social(社交)
name
值为"social"
时,指的是 Social 插件。