🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

3871閲覧

jsでスマホchromeアプリブラウザにてchromeの画面のままバックグラウンドでアプリを起動させたい

bellcrud

総合スコア22

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2019/11/18 12:28

編集2019/11/22 11:27

#期待結果
javascriptで、スマホのchromeブラウザでwebアプリで特定のアプリにアクセス時、スマホアプリをバックグランドで起動させ、chromeの画面は遷移させないようにしたい。

#問題
javascriptにてURLスキームでアプリをバックグラウンドで、起動させるとchromeの画面がアクセス前の画面にブラウザバックしてしまう。
URLスキームを

#環境
cakePHP2系
android8
android chrome ver.77

#コード

html

1<a class="applicationstart"/> 2~~~~js記述箇所抜粋~~~~ 3<script type='text/javascript'> 4$(window).on('DOMContentLoaded', function() { 5 application(); 6 $('.applicationstart').click();//←ここで自動的にクリックイベントを発火させて、アプリバックグラウンド処理を実行させている。 7}); 8</script> 9~~~~js記述箇所抜粋~~~~

js

1 2$(document).on('click', '.applicationstart', function(e) { 3e.preventDefault(); 4var url = "intent://scheme=application;end;" 5top.location.href = url;// ←ここでURLスキームを`top.location.href`に格納した時にブラウザバックが起こる 6}

#わかっていること

  1. アプリはバックグラウンドで実行はできている。
  2. 画面がブラウザバックしてしまう点だけが問題。
  3. top.location.href にurlを格納した瞬間にブラウザバックが起こることを確認。
  4. $('.applicationstart').click();で自動的にクリックさせるとブラウザバックが起こるが、画面にて手動で、<a class="applicationstart"/>をタップすると画面遷移はしない。

#わかっていること詳細
今回の疑問対象画面は2つ
・画面A(画面Bへのリンクするためのaタグが記述されている)
・画面B(スマホアプリを起動させるjavascriptの記述が記載されている)
####2の詳細
画面Aでリンクをクリック→画面Bに遷移→Androidアプリ起動→自動的にブラウザバック処理発動→画面Aに戻る
####3の詳細
画面Bにてtop.location.href にアンドロイドアプリを起動するURLIntent://~を代入すると、代入したタイミングでブラウザバックが起こり画面Aに遷移する
####4の詳細
試しに、画面Bにてaタグを用意し、aタグをクリックするとアプリ起動する記述を追加。
画面Aでリンクをクリック→画面Bに遷移→画面Bでaタグをクリック→アプリ起動→画面は遷移せず画面Bが表示され続けた

##追加情報
望みとしては以下になります。

  • Androidアプリを起動させたい(済み)

  • アプリ起動後は画面Bにしておきたい

  • 申し訳ありません、説明不足でした。画面Bはログイン必須のためもし、未ログインの場合画面Aから画面Bに遷移するさい、ログイン画面を挟みます。そのため、ブラウザバックが発動すると、未ログインの場合画面B表示後、再びログイン画面が表示されてしまうため、ブラウザバックさせたくないです。  

  • 同様につまづいている人がstackoverflowに記載している人がいたのでURL貼っておきます。

https://stackoverflow.com/questions/58092833/how-to-stop-back-behavior-of-intent-redirection

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oikashinoa

2019/11/18 23:47

"わかっていること" の2,3,4がどんな動きをするのか記載可能でしょうか?どこからどこにバックするのかとかイメージ付きませんでした。
oikashinoa

2019/11/22 10:50

2,3,4の詳細ありがとうございます。 ただ問題点がよく理解できませんでした。 望みは - Androidアプリを起動させたい(済み) - アプリ起動後は画面Aにしときたい? - ブラウザバックさせたくない理由が分からない(履歴にintent...が残っている?) もう少し補足すると嬉しいです
bellcrud

2019/11/22 11:18 編集

情報の追加修正いたしました。
guest

回答1

0

画面Aにてwindow.openで”intent://…(アプリ)”を開いたら希望通りになります?
その後、画面Bに行けば良い?

投稿2019/11/22 11:42

oikashinoa

総合スコア2826

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bellcrud

2019/11/22 13:41

回答ありがとうございます! すみません。 画面Aでは呼ぶことはできない環境です。
oikashinoa

2019/11/22 14:04

画面Bに遷移したときはすでにログイン済み状態であり、画面Bでintent使ってアプリを起動したいって事です? で、画面A,Bともに自サイトなら画面Bでwindow.openしてはダメ?
bellcrud

2019/11/22 15:40

おっしゃっられている通り、 画面BでIntent使ってアプリを起動したいってことです。 >画面Bでwindow.openしてはダメ? こちらしてはダメというのは、しても良いかということでしょうか? 上記の意味で言えば、しても良いという回答となります。
oikashinoa

2019/11/22 22:27

自サイト 画面A → (自サイト? ログイン画面)→ 自サイト 画面B(ログイン状態) & Androidアプリ という流れにしたいのであれば、自サイト 画面Bで`Window.open`でintent発行すれば ブラウザは自サイト 画面B かつ Andoridアプリが動いている状態に出来ると思いますよ。
bellcrud

2019/11/25 14:27

試させtいただいたのですが、 自サイト 画面Bで`Window.open`でintent発行したのですが、ブラウザのURLバーにintent://…(アプリ)と表示されて、アプリが起動しませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問