Резюме У меня есть приложение с правильно действующей схемой URL, которую я хотел бы запустить из веб-приложения, хранящегося на главном экране, и обычные методы перенаправления JavaScript, похоже, не работают.
Подробнее Я пытаюсь создать веб-приложение iOS, которое будет открыто в полноэкранном режиме из ссылки, сохраненной на главном экране. Веб-приложение должно открыть определенное родное приложение. Я уже зарегистрировал схему URL-адресов для собственного приложения и подтвердил, что он работает правильно. Я могу открыть собственное приложение, например, путем ввода схемы непосредственно в адресную строку Safari. Я также могу открыть его из других приложений, используя метод +openURL:
UIApplication
. Я также хотел бы открыть его с помощью определенных аргументов из собственного веб-приложения, которое можно добавить на главный экран.
То, что я пытаюсь сделать, - это использовать JavaScript как внутри встроенного приложения:
window.location = "myapp://myparam";
При использовании этого кода внутри веб-приложения я получаю предупреждение:
"Не удается открыть myWebAppName - myWebAppName не удалось открыть. Ошибка:" Этот URL не может быть показан".
Этот же javascript, когда он выполняется в Safari, работает правильно. Я получаю тот же результат, используя window.location.replace("myapp://myparam")
.
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 и мобильной сетью, поэтому я подозреваю, что я просто пропустил что-то очевидное.