请求Silverlight中的对话框

时间:2011-01-28 17:23:33

标签: c# silverlight fbml facebook-c#-sdk

我正在使用Silverlight创建一个简单的应用程序在Facebook上运行。

我已经明白,要邀请朋友加注,我必须拨打fb:request-form,或使用Simpler Requests

如何从Silverlight In-Browser中调用其中一种方法?

2 个答案:

答案 0 :(得分:0)

您可以将一些JavaScript代码(用于使用Simpler请求)放入您的网页,并从Silverlight应用程序调用此JavaScript。请参阅Facebook C#SDK包中的“CSSilverlightInBrowser”示例,此示例中的MainPage.xaml.cs中的LoginToFbViaJs方法通过javascript进行登录请求。

答案 1 :(得分:0)

我通过将facebook javascript代码放在包含silverlight xap的aspx文件中解决了这个问题,然后通过silverlight调用该代码。

此代码进入我的aspx文件:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({
    appId  : 'APP_ID',
    status : true,
    cookie : true,
    oauth: true
  });

  function sendRequestToRecipients() {
    var user_ids = document.getElementsByName("user_ids")[0].value;
    FB.ui({method: 'apprequests',
      message: 'My Great Request',
      to: user_ids, 
    }, requestCallback);
  }

  function sendRequestViaMultiFriendSelector() {
    FB.ui({method: 'apprequests',
      message: 'My Great Request'
    }, requestCallback);
  }

  function requestCallback(response) {
    // Handle callback here
  }
</script>

然后,您可以使用以下代码从Silverlight中调用它:

        var param = new object[] { };
        HtmlPage.Window.Invoke("sendRequestViaMultiFriendSelector", param);