1

graphapi_web_1_8_1.swc には、 JavaScript バージョンFacebook.init()とほぼ同じ引数を取る関数があります。ただし、設定に興味があるのは、 と の両方に渡される引数をFB.init()介して、Facebook の hideFlashCallback パラメータです。JavaScript SDK は、次に示す型の値を取ります。"options"Facebook.init()FB.init()"Object"

http://developers.facebook.com/docs/reference/javascript/FB.init/

しかし、すでに ActionScript から graphapi_web_1_8_1.swc を呼び出している場合Facebook.init()、どのように JavaScript 関数を hideFlashCallback として渡すことができますか?

戻り値がコールバック関数である JS 関数をオブジェクトとしてExternalInterface.call()呼び出すために使用しようとしたが、ActionScript 変数がorとして型付けされた場合でも、ActionScript で null として返されます。"GetHideFlashCallback()""Object""*"

私の次のテストは、graphapi_web_1_8_1.swc の呼び出しを回避し、Facebook の JavaScript SDK を直接使用するFacebook.init()ようなことを行うことです。ExternalInterface.call("FB_init_proxy(args)")

しかし、JavaScript 関数を ActionScript との間でオブジェクト変数としてやり取りする方法はありますか? そうでない場合、なぜですか?それはセキュリティ上の懸念ですか?

4

1 に答える 1

0

ここで問題の理由を確認できます: https://developers.facebook.com/blog/post/637/

したがって、facebook の JavaScript init で、hideFlashCallback を追加する必要があります。

FB.init({
    appId:appId,
    status:true,
    cookie:true,
    oauth:true,
    frictionlessRequests: true,
    hideFlashCallback : displayFlash
});

そしてdisplayFlash関数では、あなたが望むことができます

function displayFlash( a )
{
    if( a.state == 'opened' )
    {
        // do what you want when a chat or notification is open
    }
    else
    {
        // do what you want when a chat or notification is closed
    }
}
于 2014-03-09T15:59:12.470 に答える