質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

解決済

JSでlocalstorageを利用してリダイレクトを実装したい

YumaYamada
YumaYamada

総合スコア30

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

2回答

0リアクション

0クリップ

3608閲覧

投稿2017/01/05 07:44

編集2017/01/05 09:06

###前提・実現したいこと
現在apple-mobile-web-app-capableを利用し、ウェブサイトをスマホのホーム画面に追加した際にアプリ風に見せるUIの実装をしています。

しかし、ホーム画面に追加したサイトを再起動すると前回アクセスしたページに行かず、必ずリロードされ、トップページに飛んでしまいます。
例えば、TOPページ→Aboutページに飛んで一旦アプリを中断してホームスクリーンに戻り、またアプリを立ち上げるとAboutページには行かず、TOPページに戻ってしまうという状況です。

そのため、アプリを再起動したときに前回アクセスしたページを開くことが出来るように改良したいと考えています。

###該当のソースコード

ex.js

// 現在のURL取得 var href = window.location.href; // localstorageに保存されているURL(link)が現在のページURLと異なる、又は値が存在しない場合現在のURLを保存する。それ以外は保存されたURLを取得する。 if (href != localStorage.getItem("link") || !localStorage.getItem("link")) { localStorage.setItem("link", href); var current = localStorage.getItem("link"); } else{ var current = localStorage.getItem("link"); } //現在のURLと最後にアクセスしたリンク(current)が異なる場合、currentにリダイレクトする if (href != current ) { var redirect_url = current + location.search; //前のページの値を渡す(Google Analytics対策) if (document.referrer) { var referrer = "referrer=" + encodeURIComponent(document.referrer); redirect_url = redirect_url + (location.search ? '&' : '?') + referrer; } location.href = redirect_url; };

###試したこと
下記補足情報のサイトに記載されている方法として、localstorageを使用して前回アクセスした記録を保存し、アプリ再起動時に前回のアクセス記録を呼び出すという方法で上記のコードを記述したのですが、上手く動きません。
上記コードの改善点、又は他のアイディアがあればご教示いただけますと幸いです。

追記(上手く動かない点について):
アプリで再起動した時に以下のように出力され、currentの変数に格納されているURLへリダイレクトするようにしたいです。

href (現在アクセスしているURL)
http://example.com/index.html

current (local storageに保存された最終アクセス時のURL。)
http://example.com/about.html

しかし、現在index.htmlにアクセスすると以下のように表示され、上手く動きません。
href (現在アクセスしているURL)
http://example.com/index.html

current (local storageに保存された最終アクセス時のURL)
http://example.com/index.html

###補足情報
http://stackoverflow.com/questions/4291784/stop-native-web-app-from-reloading-itself-upon-opening-on-ios#answer-4454083

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

kei344

2017/01/05 08:35

「上手く動きません」とはどのような状況でしょうか。出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
YumaYamada

2017/01/05 09:04

ありがとうございます。「試したこと」の欄に追記致しました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。