まとめホーム画面に保存されている Web アプリから起動したい URL スキームが正しく機能するアプリがありますが、通常の JavaScript リダイレクト メソッドが機能しないようです。
詳細ホーム画面に保存されたリンクからフルスクリーン モードで開く iOS Web アプリを作成しようとしています。Web アプリは、特定のネイティブ アプリを開く必要があります。ネイティブ アプリの URL スキームを既に登録し、正しく動作することを確認しました。たとえば、Safari のアドレス バーにスキームを直接入力して、ネイティブ アプリを開くことができます。+openURL:
の方法を使用して、他のアプリケーションから開くこともできますUIApplication
。また、ホーム画面に追加できるネイティブ Web アプリから特定の引数を指定して開きたいと思います。
私がやろうとしているのは、ネイティブ アプリ内で JavaScript を次のように使用することです。
window.location = "myapp://myparam";
このコードを Web アプリ内で使用すると、次のようなアラートが表示されます。
「myWebAppName を開けません - myWebAppName を開けませんでした。エラーは「この URL を表示できません」でした。」.
この同じ JavaScript を Safari 内で実行すると、正しく機能します。を使用しても同じ結果が得られwindow.location.replace("myapp://myparam")
ます。
Web アプリの html は次のとおりです。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
<meta name="generator" content="TextMate http://macromates.com/">
<meta name="author" content="Carl Veazey">
<!-- Date: 2012-04-19 -->
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta names="apple-mobile-web-app-status-bar-style" content="black-translucent" />
</head>
<body>
<script type="text/javascript" charset="utf-8">
if (window.navigator.userAgent.indexOf('iPhone') != -1) {
if (window.navigator.standalone == true) {
window.location = "myapp://myparam";
} else {
document.write("please save this to your home screen");
};} else {
alert("Not iPhone!");
document.location.href = 'please-open-from-an-iphone.html';
};
</script>
</body>
</html>
ここで何が間違っていますか?私は JavaScript とモバイル Web にかなり慣れていないので、明らかな何かが欠けているだけだと思います。