2016-01-05 3 views
2

Это сообщение похоже на Microsoft Band Web Tile not Updating, но ответ, отмеченный как ответ на этот вопрос, на самом деле не решит мою проблему, поэтому я решил начать новую запись.Microsoft Band Web Tile Not Refreshing

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

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

Cache-Control: нет-кэша Pragma: нет-кэша Expires: -1 Last-Modified: ETag:

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

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

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

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

{ 
    "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}}" 
    } 
    ] 
} 

ответ

0

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

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

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

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

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

+0

Похоже, что часть моего сообщения, связанная с заголовком Last-Modified и ETag, была изменена, когда я отправил - служба фактически устанавливает для них значения; Дата последней модификации сбрасывается при каждом обращении к службе. ETag - это Guid (сбрасывается в строку), который генерируется при каждом вызове, поэтому теоретически он никогда не будет таким же, как предыдущий запрос. –

+0

Исходная версия службы не содержит значений Last-Modified или ETag. Я добавил их после проведения начального тестирования без них и не получал данные, обновленные в группе. Вот URL-адрес службы: https://sfowlerbanddata.azurewebsites.net/api/sgv/latest –

+0

Я неоднократно обзывал https://sfowlerbanddata.azurewebsites.net/api/sgv/latest несколько раз, и я вижу, что значения меняются, а плитка меняется. Обновлена ​​ли ваша плитка? Я также создал образец плитки, подобный тому, который вы создали с помощью инструмента Web Authoring, и он обновляется, как ожидается, на iOS. –

0

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

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

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

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

+0

Спасибо за вашу помощь, Марк ... У меня все еще есть не обновляющаяся плитка, но попытка помощи была оценена ... Чтобы ответить на ваши последние вопросы: нет, я не оставляю плитки открытыми. Я обращаюсь к плитке и проверяю обновление и всегда выхожу обратно. Кроме того, я пробовал использовать значок синхронизации, и он также не обновляет плитку. Я отправил обратную связь, используя приложение MS Health, как было предложено, хотя я не видел способа прикрепления плитки (я мог бы сделать изображение, но это было так). Есть ли способ редактировать представление теперь, когда оно было введено? –

+0

Невозможно отредактировать представление после его ввода, извините. Отправьте WebTile с параметром «Опубликовать WebTile» в конце инструмента WebTile Authoring. Укажите свое имя в Авторе, и я посмотрю. –

+0

Марк, еще раз спасибо ... Извините за задержку в ответе, но я был вне города и не мог поработать над этим немного. Я просто загрузил свой веб-фрагмент в галерею ... Я не совсем уверен, что мне нравится это делать, но это то, что это ... Как извлечь плиту из галереи после ее загрузки? Я не обязательно хочу, чтобы этот был там. –

0

Я разделяю разочарование здесь. У меня тоже есть точно такая же проблема. Я также был разработчиком в течение 20 лет. Теперь мой ответ на эту проблему заключается в том, что при использовании JSON и/или с телефонами Android существует ошибка. Я пытался получить ответы и обсуждения с Microsoft, но не повезло. Моя проблема находится на Web Tile works once but never refreshes

+0

Ну, я собирался проглотить свое разочарование, увидев ответ на ваш поток от Марка Тислла, указав, что они обнаружили проблему, и помещали исправление в следующее обновление для обновления работоспособности ... К сожалению, это обновление не исправило проблема, с которой я сталкиваюсь с моим веб-сайтом. Чрезвычайно разочаровывает ... Кто-нибудь хочет Band 2, едва ли используется? –