В настоящее время я пишу небольшое веб-приложение, используя Asp.net MVC и jQuery mobile.Все отлично отрисовывается в тестовой среде на рабочем столе и в браузере Safari на iPad.Однако, когда я добавляю <meta name="apple-mobile-web-app-capable" content="yes" />
к голове, я начинаю вести себя странно.
Вот начало моей простой тестовой страницы входа для объяснения ниже:
<%@ Page Title="Test App" Language="C#" Inherits="System.Web.Mvc.ViewPage<TestApp.ViewModels.LoginViewModel>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta charset="UTF-8" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width, user-scalable=no" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="apple-touch-icon" sizes="72x72" href="../../../Content/Images/touch-icon-ipad.png" />
<!-- <link rel="apple-touch-startup-image" sizes="1024x748" href="../../../Content/Images/splash-screen-1024x748.png" />
<link rel="apple-touch-startup-image" sizes="768x1004" href="../../../Content/Images/splash-screen-768x1004.png" /> -->
<title>Test App</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script src="../../../Scripts/jquery.1.7.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js" type="text/javascript"></script>
<link rel="Stylesheet" href="../../../Content/jquery-mobile-fluid960.css" />
<link rel="Stylesheet" media="screen" href="../../../Content/mobile.css" />
<script type="text/javascript">
function BlockMove(event) {
// Tell Safari not to move the window
event.preventDefault();
}
</script>
</head>
<body id="login" ontouchmove="BlockMove(event);">
Сначала Safari зависал каждый раз, когда я пытался загрузить значок «Главный экран» с яблоком-mobile-web-app-способен контент = "да", но не с контентом = "нет" или когда он отсутствовал.В ходе тестирования я обнаружил, что если я закомментировал заставки, Safari не потерпит крах, но загрузит какой-то странный код.Chrome для сафари исчез бы, как и предполагалось, но в тексте показывался бы только этот текст:
Test App function BlockMove(event) { // Tell Safari not to move the windowevent.preventDefault();} Mobile: Password:
Это странно, потому что он перечисляет заголовок страницы и мой javascript из головы как обычный текст втело.Кроме того, не выполняется ни JavaScript, ни CSS (или так оно и выглядит).Это странное поведение, потому что, как я уже говорил ранее, оно отлично работает в обычном браузере iOS Safari или когда отсутствует поддержка apple-mobile-web-app или значение no.У меня есть несколько журналов сбоев Safari, которые я нашел, но из того, что я понимаю, я мало что могу сделать с теми, у кого нет источника.
Любое понимание того, почему это может происходить, будет высоко оценено, потому что я в растерянности.Я искал несколько дней, пытаясь найти кого-то с такой же проблемой, но безуспешно.Надеюсь, это что-то простое, что я пропускаю.Спасибо.