0

私は現在、Asp.netMVCとjQuerymobileを使用して小さなWebアプリを作成しています。デスクトップテスト環境とiPadのSafariブラウザではすべてが正常にレンダリングされています。しかし、<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);"> 

最初は、apple-mobile-web-app-capable content = "yes"で「ホーム画面」アイコンからロードしようとするたびにSafariがクラッシュしましたが、content="no"ではクラッシュしませんでした。テストの結果、スプラッシュ画像をコメントアウトするとSafariはクラッシュしませんが、奇妙なコードが読み込まれることがわかりました。サファリクロームは想定どおりに表示されなくなりますが、本文にはこのテキストのみが表示されます。

Test App function BlockMove(event) { // Tell Safari not to move the windowevent.preventDefault();} Mobile: Password:    

これは、ページタイトルと頭からのJavaScriptを本文の通常のテキストとしてリストしているため、奇妙です。その上、JavaScriptやCSSは実行されていません(または表示されます)。前に述べたように、通常のiOS Safariブラウザーで、またはapple-mobile-web-app-capableがないか、noに設定されている場合、この動作は完全に正常に実行されるため、この動作は奇妙です。私は見つけたSafariのクラッシュログをいくつか持っていますが、私が理解していることから、ソースのないものでできることはあまりありません。

私は途方に暮れているので、なぜこれが起こっているのかについての洞察をいただければ幸いです。私は運がなくて同じ問題を抱えている他の誰かを見つけようとして何日も探していました。うまくいけば、それは私が見落としている単純なものです。ありがとう。

4

1 に答える 1

1

私は同じ問題を抱えています。私がこれまでに判断できたのは、Webサイトに通常アクセスする場合と、アプリケーションとしてアクセスする場合では、ユーザーエージェント文字列が異なるということです。

アプリケーションとしてアクセスすると、ユーザーエージェント文字列に情報が欠落しているため、ページがブラウザとしてレンダリングされます。ASP.NETは認識せず、javascriptなどの機能もありません。これはあなたが見ている行動につながります。

私はまだそれを私のために働かせることができていませんが、私は解決策を提供するこの1つのリンクを見つけました。

http://blog.lavablast.com/post/2011/05/29/Gotcha-iPad-versus-ASPNET.aspx

于 2012-02-20T18:11:07.097 に答える