native.showPopup() — 社交弹出窗口

类型 函数
native.*
返回值
修订版 版本 2024.3703
关键字 native,showPopup,社交,Twitter,Facebook,新浪微博

概述

显示指定服务的操作系统默认弹出窗口。

疑难解答

Facebook 有一个关于预填的 平台政策,其中禁止预填 Facebook 的消息。在 iOS 8.0+ 和 Android 上,不支持 options.message,如果您尝试使用此字段,Facebook 会无提示地忽略该字段。

语法

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

字符串. 要显示的弹出窗口的字符串名称。对于社交弹出窗口插件,请使用 "social"

options (可选)

表格. 指定弹出窗口可选属性的表格 — 请参阅下一节以了解更多详情。

选项参考

service (可选)

字符串. 仅适用于 iOS,表示要显示的社交服务弹出窗口的名称。支持的值为 "twitter""facebook""sinaWeibo"。在 Android 上忽略此键。

image (可选)

表格. 包含子表格形式为 { baseDir=, filename= } 的图像,您希望发布这些图像。

message (可选)

字符串. 预先填充弹出窗口的消息字段的字符串。在 iOS 8.0+ 和 Android 上,这在 Facebook 中不受支持,因为它违反了 Facebook 的 平台政策。如果您在 iOS 8.0+ 和 Android 上尝试使用此字段,Facebook 会无提示地忽略该字段。

listener (可选)

监听器. 支持 弹出窗口事件 的监听器函数。

url (可选)

字符串数组. 单个字符串或字符串数组。每个字符串都是要发布的 URL。

示例

local serviceName = "twitter"  -- Supported values are "twitter", "facebook", or "sinaWeibo"

local isAvailable = native.canShowPopup( "social", serviceName )

if ( isAvailable ) then

    local listener = {}
    
    function listener:popup( event )
        print( "name: " .. event.name )
        print( "type: " .. event.type )
        print( "action: " .. tostring( event.action ) )
        print( "limitReached: " .. tostring( event.limitReached ) )
    end

    native.showPopup( "social",
    {
        service = serviceName,
        message = "Hi there!",
        listener = listener,
        image = 
        {
            { filename="world.jpg", baseDir=system.ResourceDirectory },
            { filename="bkg_wood.png", baseDir=system.ResourceDirectory }
        },
        url = 
        {
            "http://www.coronalabs.com",
            "http://docs.solar2d.cn"
        }
    })

else

    native.showAlert(
        "Cannot send " .. serviceName .. " message.",
        "Please setup your " .. serviceName .. " account or check your network connection.",
        { "OK" } )
end