Как показать статус MSN в форме приложения Flex? - PullRequest
1 голос
/ 04 марта 2011

У меня есть гибкое бизнес-приложение, и мне нужно создать элемент управления, который будет отображать небольшую графическую иконку статуса мессенджера данного пользователя (в сети, нет и т. Д.)

В качестве альтернативы, как вставить HTML-страницу внутри гибкой формы?

На сайте MSN есть фрагмент кода HTML (который должен быть), который делает именно то, что я хочу, вот он:

<a target="_blank" href="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=eb892994c712bb83@apps.messenger.live.com&mkt=ru-RU">
    <img style="border-style: none;" src="http://messenger.services.live.com/users/eb892994c712bb83@apps.messenger.live.com/presenceimage?mkt=ru-RU" width="16" height="16" />
</a>

(его можно найти здесь: http://settings.messenger.live.com/Applications/CreateHtml.aspx)

Также мне нужно заменить eb892994c712bb83 в этом фрагменте на код пользователя cid. Как найти cid пользователя, зная его / ее имя учетной записи MSN - это еще один вопрос ...

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Поддержка HTML в Flex (за пределами AIR) весьма ограничена.

Другой вариант - использовать Изображение :

<s:Image id="msnLiveStatusIcon"
         creationComplete="initStatus()"
         click="openMSNLive()" />

, где initStatus и openMSNLive определены следующим образом:

private var userCID:String = "eb892994c712bb83";

protected function initStatus():void {
  var iconURL:URLRequest = new URLRequest("http://messenger.services.live.com/users/" 
    + userCID + "@apps.messenger.live.com/presenceimage?mkt=ru-RU");

  msnLiveStatusIcon.source = iconURL;

  // poll to check for updated status
  var pollTimer:Timer = new Timer(60000); // once a minute
  pollTimer.addEventListener(TimerEvent.TIMER,
    function (e:TimerEvent):void {
      msnLiveStatusIcon.source = null;
      msnLiveStatusIcon.source = iconURL;
    });

  pollTimer.start();
}

protected function openMSNLive():void {
  navigateToURL(new URLRequest("http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee="
    + userCID + "@apps.messenger.live.com&mkt=ru-RU"),
    "_blank");
}

Опрос необязательный. Анонимная функция для слушателя используется только для краткости и не рекомендуется для производства.

0 голосов
/ 15 марта 2011

Хорошо, неделя расследования и некоторые результаты:

1) MSN API существует для .NET и JavaScript - получение статуса со стороны сервера ASP.NET возможно;

2) существует загадочный элемент управления ActiveX с именем Name.NameCtrl, который поставляется с Microsoft Office и может использоваться из JavaScript для получения статуса пользователя MSN;

И
3) проще всего использовать свойство htmlText в элементе управления Flex, например, в элементе управления mx: TextArea. Назначение HTML, указанного в вопросе, свойству htmlText «просто работает». Полное руководство по свойствам htmltext находится здесь:

html_text_property_help

...