类型 函数 返回值 无 修订版本 版本 2024.3703 关键词 Facebook,初始化 另请参阅 facebook.login() facebook.* fbconnect fbinit
设置监听器函数,该函数将在 Facebook SDK 初始化完成后接收 fbinit 事件。
此方法还将相同的监听器函数设置为 fbconnect 事件的默认监听器,因此无需调用 facebook.setFBConnectListener(),除非您想为 fbconnect 事件和 fbinit 事件使用不同的监听器。
当需要该插件时,Facebook SDK 的初始化将自动触发。此调用提供了一种确定初始化何时完成的方法。强烈建议您在调用 facebook.login() 或 facebook.publishInstall() 等方法之前等待初始化完成。
facebook.init( listener )
监听器. 一个响应 fbinit 事件以及可选的 fbconnect 事件的监听器。如果这是一个表,它应该有一个名为 `“fbinit”` 的属性,该属性是一个函数。
local facebook = require( "plugin.facebook.v4a" )
-- Check for a value inside the provided table
local function valueInTable( t, valueToFind )
for k,v in pairs( t ) do
if v == valueToFind then
return true
end
end
return false
end
local function shareLink( url )
local accessToken = facebook.getCurrentAccessToken()
if accessToken == nil then
facebook.login()
elseif not valueInTable( accessToken.grantedPermissions, "publish_actions" ) then
facebook.login( { "publish_actions" } )
else
facebook.showDialog( "link", { link=url } )
end
end
local function facebookListener( event )
if ( "fbinit" == event.name ) then
print( "Facebook initialized" )
-- Initialization complete; share a link
shareLink( "https://www.coronalabs.com/" )
elseif ( "fbconnect" == event.name ) then
if ( "session" == event.type ) then
-- Handle login event and try to share the link again if needed
elseif ( "dialog" == event.type ) then
-- Handle dialog event
end
end
end
-- Set the "fbinit" listener to be triggered when initialization is complete
facebook.init( facebookListener )