6

Я занимаюсь созданием веб-приложения asp.net (3.5) и задавался вопросом, знаете ли вы, каким образом я мог бы сделать это, чтобы было какое-то автономное функциональность.Создайте веб-приложение ASP.Net с автономной функциональностью

Это необходимо, так как люди смогут «установить» веб-приложение на своем устройстве (используя функцию «Добавить на главный экран» на iPhone, например), а затем использовать приложение, когда они находятся в автономном режиме; использование будет ограничено только (в этот момент не будет необходимости в вызовах сервера).

Это можно сделать с помощью страницы .aspx?

Edit- .manifest добавил:

CACHE MANIFEST 
index.aspx 

/logo.png 
/main.css 
/main.js 

Редактировать no.2-

Мы он работает в автономном режиме, в моде; он работает, когда в сафари, но мы не хотим его в сафари, мы хотим, чтобы он был автономным приложением. Когда мы пытаемся запустить его так, мы получаем сообщение «can not connect to server error». Возможно ли это с помощью страницы .aspx?

Редактировать № 3 -

Мы получили эту работу с помощью .html страницы, но пока еще не с .aspx

Edit no.4-

Он сейчас работает, хотя мы не уверены, почему! Мы добавили index.aspx в раздел «network» cache.manifest на прошлой неделе (который не работал на прошлой неделе!), Который, возможно, помог, но как только я точно знаю, что я обновлю то, что на самом деле произошло!

Спасибо всем за помощь!

+0

Является ли файл с именем «cache.manifest» (требование iOS) и его тип ответа «text/cache-manifest»? Вы уверены, что не получаете 404 на этих ресурсах? –

+0

@pep Да, файл называется «cache.manifest», а тип ответа также «text/cache-manifest». Мы также установили MIME-тип в IIS. У нас тоже нет 404-х. Это очень запутанно! – donpisci

+0

Я работал над полным приложением, используя ASPX без проблем кеширования в приложениях для домашнего экрана или сафари. Поскольку у вас, кажется, странная проблема, может быть очень полезно обновить ваш ответ с помощью HTML-рендеринга в браузере, чтобы мы могли точно видеть, что происходит. Вам, вероятно, не нужно публиковать содержимое, как тело, но, если возможно, размещать что-нибудь вроде doctype, заголовков, мета-тегов и т. Д. Похоже, что он должен работать - мой последний вопрос состоял в том, чтобы убедиться, что базы охвачены, делаю. –

ответ

0

Да, это можно сделать с помощью ASP.NET, поскольку ASP.NET отображает HTML-страницу в браузере клиента, а автономные функции - это чистая функциональность JavaScript/Html. Here - статья Стивена Вальтера, показывающая один из способов сделать это.

+0

Спасибо. Я только что попробовал добавить обработчик ashx, но я все еще получаю сообщение «Не могу открыть, потому что он не мог подключиться к серверу». Я обновляю свой начальный пост с моим текущим файлом .manifest, поскольку, возможно, я не ошибаюсь. – donpisci

1

Способ сделать это - хотя у меня не было возможности на самом деле это сделать - будет использовать одну из новых возможностей HTML5: манифест кэша.

Вы можете прочитать очень хороший пример этого здесь: http://www.html5rocks.com/en/tutorials/appcache/beginner/

+0

Спасибо за это, я посмотрю. – donpisci

12

Для форума HTML5 приложений с ASP.NET см это link и это link.

Для автономных функциональных возможностей, есть несколько альтернатив:

- Если вам нужно хранить небольшое количество данных в автономном приложении, и безопасность не является большой проблемой, вы можете использовать HTML5 Web Storage (link, link, link, link, link, и посмотрите на CanIUse для понимания поддержки версии браузера).

Основные недостатки в том, что он не имеет безопасности, основанный на ключевом значении (без сложных структур), и существует большое ограничение в размере хранилища (5 МБ для большинства браузеров).


- Если вам нужно большее количество данных, вы можете посмотреть на IndexDB (link, link, link и CanIUse) или веб-Sql (link, link, link и CanIUse для поддержки браузера).

Основными недостатками веб-SQL являются то, что Firefox не поддерживается IE. Кроме того, он устарел от W3C.

IndexDB хороший (link), но похоже, что ios все еще не поддерживает его (см. CanIUse).

Для подходов 1 и 2 вы можете создать отзывчивый дизайн или выделенный мобильный веб-сайт в своем приложении ASP.NET (link).


- (большая гибкость требует больше усилий) Внедрение веб-службы в приложении ASP.NET и мобильный родное приложение претендуете концепции подключающихся приложений (подробнее: link, link)

  • Веб-приложение ASP.NET => Для веб-приложения вы можете открыть веб-службу с сервисами, связанными с автономной функциональностью.

  • Мобильное приложение => Внедрение собственного мобильного приложения (например, разработка приложения для Android и iphone) с базой данных для приложения. Затем вы создаете автономные функции в мобильном приложении, которые будут использовать свою собственную базу данных для чтения и записи (локально) данных, которые должны быть доступны в автономном режиме.

Вы затем осуществить бесшумный механизм синхронизации в мобильном приложении, которое опирается на Интернете (например, рецидивирующий нити), который будет искать обновления путем доступа к приложению ASP.NET с помощью веб-службы. Этот механизм синхронизации отправит данные, которые были сохранены локально, и восстановить данные из веб-службы, которые могут быть полезны для автономной работы.


Надеюсь, это поможет.

+1

Спасибо за ваш ответ. Мы используем локальное хранилище для любых данных, которые нужны пользователю, однако проблема, с которой мы сталкиваемся, - это когда мы устанавливаем веб-приложение на устройство, а затем помещаем устройство в режим самолёта, который мы не можем запустить. Мы попытались использовать страницу .html как страницу по умолчанию, и она работает нормально, однако с помощью страницы .aspx она встречает описанную ошибку. – donpisci

0

Да. Это можно сделать, как говорили другие, используя манифест Cache.

Что я предлагаю сделать, это создать handler, чтобы сгенерировать cache manifest, который может быть динамическим.

Одно дело, связанное с файлом манифеста кэша, заключается в том, что если этот файл не будет изменен, обновления не будут выполняться. Именно здесь идет обработчик.Добавить комментарий раздел с # как символа комментария, и обновляет метку времени после этого

#2013-08-08 1:53:36 PM 'This is your comment section

Если генерируется обработчиком, вы можете хранить в БД, когда страница каждого пользователя может быть обновлена ​​(это делание это динамическое кэширование в то же время это)

Одна важная вещь, чтобы иметь в виду при использовании манифеста кэша:

файлы, кэшируются должны соответствовать точной строке запроса из тех, которые доступны. Это похоже на чувствительность к регистру на некоторых устройствах, и любые строки запросов, которые существуют на одном , ДОЛЖНЫ, существуют точно так же, как и на другом, поэтому вам нужно это предвидение при создании файлов манифеста кэша.

+0

Почему downvote? Это ответило на вопрос и углубилось, как –

Смежные вопросы