Создание приложения HTML5 для iOS с помощью UIWebView

У меня есть клиент, который предложил просто обернуть приложение HTML5 как родное приложение iOS, просто создав UIWebView и выгрузив всю логику приложения в приложение HTML5. Это позволит нам иметь "родное" приложение для iOS и хорошее мобильное приложение для других устройств.

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

Спасибо,

Я не исследовал все различные варианты форматирования для автоформатирования, но мне нравится, чтобы каждый атрибут XML располагался в отдельной строке, причем первый в той же строке, что и открывающий тег, а последующие выстраивались с первым. , например:

<asset assetId="12345"
       bucket="default"
       owner="nobody">
  <file path="\\localhost\share\assetA.mov"/>
  <metadata metadataId="23456"
            key="asset_type"
            value="video"/>
</asset>

Я пробовал форматировать с помощью свойств XmlWriterSettings 'NewLineHandling = NewLineHandling.None' и 'NewLineOnAttributes = true', но это помещает первый атрибут ниже открывающего тега, и все атрибуты имеют одинаковый отступ независимо от # символов в имени элемента, например:

<asset
  assetId="12345"
  bucket="default"
  owner="nobody">
  <file
    path="\\localhost\share\assetA.mov" />
  <metadata metadataId="23456"
    key="asset_type"
    value="video" />
</asset>

Обратите внимание, что стандартный XmlWriter также завершает элементы, содержащие только атрибуты, с помощью «/>» (лишний пробел перед косой чертой), что мне не нравится, но я не уверен, соответствует ли это стандарту XML. Я бы подумал, что Visual Studio использует те же параметры API, которые доступны разработчикам, но мне еще предстоит найти эти волшебные настройки. В любом случае, вот мой метод форматирования:

public static string FormatXml( string xmlString, bool indented )
{
    using ( TextReader textReader = new StringReader( xmlString ) )
    using ( XmlReader xmlReader = new XmlTextReader( textReader ) )
    {
        using ( TextWriter textWriter = new StringWriter() )
        {
            var settings = new XmlWriterSettings();
            if ( indented )
            {
               settings.Indent = true;
               settings.IndentChars = "  ";
               settings.NewLineOnAttributes = true;
               settings.NewLineHandling = NewLineHandling.None;
            }
            using ( var xmlWriter = XmlWriter.Create( textWriter, settings ) )
            {
                while ( xmlReader.Read() )
                    xmlWriter.WriteNode( xmlReader, false );
            }
            return textWriter.ToString();
        }
    }
}
6
задан Erhhung 22 November 2010 в 20:17
поделиться