1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

備忘録: Android ChromeアプリでのURLスキームIntent呼びだし

Posted at

事前情報

AndroidのChromeアプリでURLスキームを利用して、Androidアプリを起動する際に気をつけるべき、不具合?仕様?があるので忘れないためというのと、記事がどこにもなかったため他にそのパターンに出会う人がいた時のために記事にしておきます。
あらかじめ書いておくと、ここに不具合なのか仕様なのかはわかっていません。またそれに対する回避方法などもわかっておりません。
ただ、意図しない挙動が起こるという事実だけを記載します。
ちなみに1週間ずっと悩んだ挙句答えに辿りつきませんでした。。。。

概要

AndroidのアプリをChromeブラウザアプリから起動させる際にURLスキームを利用するとブラウザバックが起こるという内容です。

ブラウザバックが起こるパターン

前提条件

OS Android
ブラウザ Chrome
画面A/画面B 2つ
呼び出すスマホアプリ 1つ

前提条件詳細

  • 画面Aには画面Bへの別タブで開くaタグが記載されている
screenA.html
<a href="/screenB.html" target="_blank>画面Bへ</a>
  • 画面Bにはアプリを起動するjavascriptが記載されている
screenB.html
<script>
                       // アプリを起動するURLスキーム
  top.location.href = "Inten://~end;";
</script>

手順

  1. 画面Aにて画面Bへのリンクをクリックする
  2. 画面Bが表示されるとtop.location.href = "Inten://~end;";が実行されて、アプリが起動する。
  3. 自動的に画面がブラウザバックし、画面Aに遷移する。
     (※target属性に_blankを指定しているため別タブで開かれていうるが、タブが閉じられる。Android全体で使用している戻るボタンのため、動作がPCのブラウザバックと多少違う?)

問題

アプリは起動するが、javascriptにブラウザバックする記述がないにも関わらず、ブラウザバックしてしまう。
Android端末でfirefoxで同様の動作をするとブラウザバックは起らす、iOSでsafariで確認したがブラウザバックは起らなかった。
iOSでのChromeの検証はすることができなかったの。

##所感
かなりの時間を割いて調査したが、有力な情報は手に入らなかった。
AndroidのChromeは安定しないと思っている方もいるらしい。バグなのか、何かしらのセキュリティにひっかかる動作のためなのか。
同様の事象で困っっている人がいるのをstackoverflowで発見できたため、自分の環境特有のものではないことを確認した.
safriとfirefoxで起らないということはバグではないかと思っている。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?