Веб-плитка Microsoft Band не обновляется

Этот пост похож на веб-плитка Microsoft Band не обновляется, но ответ помечен поскольку ответ на этот вопрос на самом деле не решил мою проблему, поэтому я решил начать новый пост.

Недавно я купил Band 2 и пытаюсь настроить веб-плитку, которая будет извлекать данные из службы, предоставляющей данные в формате JSON (не RSS-канал). Итак, я создал одностраничную плитку без подачи с помощью 5-шагового инструмента разработки. Когда я впервые развернул тайл в своем диапазоне, он успешно опросил сервис и отобразил данные; однако с этого момента данные, отображаемые на веб-плитке, не обновлялись, несмотря на установленный интервал обновления (по умолчанию 30 минут).

Вызываемая служба является службой веб-API ASP.Net. Он устанавливает следующие заголовки, связанные с кешем:

Cache-Control: no-cache Pragma: no-cache Срок действия: -1 Last-Modified: ETag:

Если я просматриваю журналы HTTP для сайта, я могу увидеть, где конечная точка моей службы вызывается с моего браслета/телефона, примерно каждые 30 минут, и сервер отвечает ответом 200 OK на каждый вызов — я не вижу 304 Not Modified ответ на стороне сервера транзакции.

Мой браслет связан с устройством Android (Samsung GS5). Я также пытался соединиться с iPhone 6, с тем же результатом. Другие плитки на полосе, кажется, работают нормально (например, стандартные, которые поставляются с приложением MS Health). в рамках сопряжения / повторного сопряжения я дважды выполнял сброс настроек к заводским, и это, похоже, не помогло. Я также пытался перезапустить оба телефона (когда они были сопряжены). Это тоже не помогает.

Что мне не хватает?

Для справки, вот что содержит файл manifest.json веб-плитки (с заполнителями для некоторых точек данных:

{
  "manifestVersion": 1,
  "name": "<Name Here>",
  "description": "<Description here>",
  "version": 1,
  "versionString": "1",
  "author": "<Author Here>",
  "organization": "",
  "contactEmail": "",
  "tileIcon": {
    "46": "icons/tileIcon.png"
  },
  "icons": {},
  "refreshIntervalMinutes": 30,
  "resources": [
    {
      "url": "<URL Here>",
      "style": "Simple",
      "content": {
        "_1_bg": "BG",
        "_1_datestring": "DateString",
        "_1_trend": "Trend",
        "_1_direction": "Direction"
      }
    }
  ],
  "pages": [
    {
      "layout": "MSBand_MetricsWithIcons",
      "condition": "true",
      "textBindings": [
        {
          "elementId": "12",
          "value": "BG: {{_1_bg}}"
        },
        {
          "elementId": "22",
          "value": "{{_1_datestring}}"
        },
        {
          "elementId": "32",
          "value": "Trend: {{_1_trend}}, {{_1_direction}}"
        }
      ]
    }
  ],
  "notifications": [
    {
      "condition": "{{_1_bg}} >= 250",
      "title": "HIGH BG: {{_1_bg}}",
      "body": "{{_1_datestring}}"
    },
    {
      "condition": "{{_1_bg}} <= 80",
      "title": "Low BG: {{_1_bg}}",
      "body": "{{_1_datestring}}"
    },
    {
      "condition": "{{_1_bg}} <= 55",
      "title": "REALLY LOW: {{_1_bg}}",
      "body": "{{_1_datestring}}"
    }
  ]
}

person Joshua Fowler    schedule 05.01.2016    source источник


Ответы (3)


Можете ли вы указать URL-адрес ресурса? Если это так, я могу взглянуть на ответы вашего сервера и понять, почему плитка не обновляется.

А еще лучше, вы можете поделиться веб-плиткой, и я могу попробовать, чтобы понять, почему она не обновляется. Вы можете создать свой WebTile по адресу https://developer.microsofthealth.com/WebTile/ и выбрать отправку. Это. Ответьте здесь с названием этого, и я посмотрю.

Кстати, вот как мы обрабатываем обновление на простом тайле:

  1. Если Etag был в последнем ответе, используйте его со следующим запросом, чтобы позволить серверу решить, есть ли что-то новое для предоставления.
  2. Если Etag не указан, найдите Last-Modified и используйте его, когда он доступен.
  3. В противном случае обработайте загруженные данные и отправьте на тайл.

Итак, если у вас есть Etag или Last-Modified в ответах вашего сервера, мы будем использовать это для отправки будущих запросов, и это может быть причиной вашей проблемы. В этом случае вы должны убедиться, что Etag и Last-Modified не отправляются в ответах вашего сервера.

person Mark Thistle    schedule 06.01.2016
comment
Похоже, что часть моего сообщения, связанная с заголовком Last-Modified и ETag, была изменена при отправке — служба фактически устанавливает значения для них; дата последнего изменения сбрасывается при каждом вызове службы. ETag — это Guid (приведенный к строке), который повторно генерируется при каждом вызове, поэтому теоретически никогда не должен совпадать с предыдущим запросом. - person Joshua Fowler; 06.01.2016
comment
Первоначальная версия службы не предоставляла значения Last-Modified или ETag. Я добавил их после того, как провел первоначальное тестирование без них и не обновил данные на браслете. Вот URL-адрес службы: sfowlerbanddata.azurewebsites.net/api/sgv/latest. - person Joshua Fowler; 06.01.2016
comment
Я несколько раз опрашивал sfowlerbanddata.azurewebsites.net/api/sgv/latest и я вижу, что значения меняются, и плитка меняется. Ваша плитка обновляется сейчас? Я также создал образец плитки, подобный той, которую вы создали с помощью инструмента веб-разработки, и она обновляется, как и ожидалось, в iOS. - person Mark Thistle; 07.01.2016
comment
Джо: Я только что использовал приложение Fiddler (telerik.com/fiddler), чтобы запросить ваш сервер по адресу 50.63.66.52:4957 и возвращает обновленные данные. Вы должны открыть новый вопрос со ссылкой на свой веб-сайт, чтобы объяснить, с какой проблемой вы столкнулись. - person Mark Thistle; 07.01.2016
comment
Нет, на данный момент он также не обновляется. Я думаю, что я собираюсь удалить / переустановить MS Health на телефоне, сбросить настройки браслета до заводских, а затем попробовать все снова... Я создал веб-плитку, используя тот же developer.microsofthealth.com/WebTile, который вы упомянули в своем сообщении; в этом нет ничего особенного. - person Joshua Fowler; 07.01.2016

Некоторые вещи, о которых я могу думать:

  • Вы держите плитку открытой на своем WebTile, пока происходят обновления? Если да, то тайлы в некоторых версиях FW бэнда не обновляются при поступлении новых данных, закройте тайл и откройте его после синхронизации.
  • Вы можете проверять синхронизацию плитки чаще, чем через 30 минут, нажав значок синхронизации в левом верхнем углу левой панели навигации в приложении Microsoft Health.

После этого, если у вас все еще есть проблемы, отправьте отзыв из приложения Microsoft Health. Доступ через левую навигацию, внизу в разделе «Настройки», используйте «Помощь и обратная связь».

При отправке отзыва, если вы можете прикрепить веб-плитку, это поможет нам протестировать веб-плитку, с которой у вас возникли проблемы.

person Mark Thistle    schedule 07.01.2016
comment
Спасибо за вашу помощь, Марк... У меня все еще есть необновляемая плитка, но попытка помочь была оценена... В ответ на ваши последние замечания: нет, я не держу плитку открытой. Я получаю доступ к плитке, проверяю наличие обновлений и всегда выхожу обратно. Кроме того, я пытался использовать значок синхронизации, и он также не обновлял плитку. Я отправил отзыв с помощью приложения MS Health, как было предложено, хотя не нашел способа прикрепить плитку (я мог сделать изображение, но это было все). Есть ли способ отредактировать отправку после того, как она была введена? - person Joshua Fowler; 08.01.2016
comment
Нет возможности отредактировать отправку после ее ввода, извините. Отправьте WebTile с параметром Publish WebTile в конце средства разработки WebTile. Включите свое имя в Автора, и я посмотрю. - person Mark Thistle; 08.01.2016
comment
Марк, еще раз спасибо... Извините за задержку с ответом, но я был за городом и не мог немного поработать над этим. Я только что загрузил свою веб-плитку в галерею... Я не совсем уверен, что мне нравится это делать, но это то, что есть... Как можно удалить плитку из галереи после ее загрузки? Я не обязательно хочу, чтобы этот болтался где-то там. - person Joshua Fowler; 15.01.2016
comment
Хорошо, дав галерее несколько дней на обновление, я подтвердил, что моя плитка находится в галерее (имя — Simple BG). Недавно я обновил свой телефон до последних доступных обновлений (Samsung SG5 на AT&T), сбросил свой Band до заводских настроек, удалил и переустановил Microsoft Health, заново добавил браслет, зашел в галерею и установил плитку оттуда. . После первоначальной установки я получил сообщение об отсутствии данных, поэтому я вручную выполнил синхронизацию через MS Health. Вот сделал обновление. Я ждал почти час без автоматического обновления, попробовал обновление вручную, но до сих пор нет обновления для информационного дисплея. - person Joshua Fowler; 23.01.2016
comment
На данный момент я думаю, что готов отказаться от эксперимента с Band и просто вернуться к своему Pebble, что расстраивает, потому что я в целом очень поддерживаю Microsoft. Я был разработчиком в течение 20 лет, и иметь что-то вроде этого, которое должно быть чертовски простым, а не работать, очень расстраивает. - person Joshua Fowler; 23.01.2016

Я разделяю разочарование здесь. У меня тоже точно такая же проблема, кажется. Я также был разработчиком в течение 20 лет. Мой ответ на эту проблему сейчас заключается в том, что, возможно, возникает ошибка при использовании JSON и/или с телефонами Android. Я пытался получить ответы и обсуждения с Microsoft, но не повезло. Моя проблема заключается в Веб-плитка работает один раз, но никогда не обновляется

person cackster    schedule 28.01.2016
comment
Что ж, я собирался проглотить свое разочарование, увидев ответ в вашей ветке от Марка Тистла, в котором говорилось, что они нашли проблему и помещают исправление в следующее обновление приложения для здоровья... К сожалению, это обновление не решило проблему. У меня с моей веб-плиткой. Крайне разочаровывающий... Кто-нибудь хочет Band 2, почти не использованный? - person Joshua Fowler; 05.02.2016