您可能知道,从 Flash 应用程序发送自定义 HTTP 请求一直很困难。例如,如果您有一个基本身份验证保护的网络服务,您将无法使用 GET 请求从 Flash 请求它,因为只有 POST 请求可以具有自定义标头。这真的很麻烦。
我想知道是否有人尝试过使用 ExternalInterface 使用 Javascript 发送 HTTP 请求?这个想法是让 JS 方法发送请求并将数据传回 Flash。
有什么想法吗?
您可能知道,从 Flash 应用程序发送自定义 HTTP 请求一直很困难。例如,如果您有一个基本身份验证保护的网络服务,您将无法使用 GET 请求从 Flash 请求它,因为只有 POST 请求可以具有自定义标头。这真的很麻烦。
我想知道是否有人尝试过使用 ExternalInterface 使用 Javascript 发送 HTTP 请求?这个想法是让 JS 方法发送请求并将数据传回 Flash。
有什么想法吗?
是的,有可能,我已经做了几次使用 Facebook JS sdk 并将数据传回我的 swf。
通常你从你的 SWF 调用一个 JS 函数:
ExternalInterface.call("getFriends",params);
在 JS 方面:
function getFriends(params)
{
FB.api('me/friends',function(response){
mySwf.onGetFriendsComplete(response);
});
}
在 SWF 端接收来自 JS 的调用:
ExternalInterface.addCallback("onGetFriendsComplete",onGetFriendsComplete);
private function onGetFriendsComplete(data)
{
trace(data);
}
如果您在本地运行 SWF,您可能需要在 ExternalInterface 调用之前进行检查以确保它可用:
if(ExternalInterface.available)
ExternalInterface.call(...);