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

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

ただいまの
回答率

89.97%

標準ブラウザが立ち上がらない

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 772

zooros

score 5

お世話になっております。
どうしても実現できないことがあり質問させていただきました。
種々調べてみたのですがどうしてもわからないため教えていただきたく。
よろしくお願いします。

現在、monacaアプリからリンクをタップした際に、訳あってwebviewではなく標準ブラウザを立ち上げたいと思っています。
以下のロジックを<head>内に記述し、リンク文字をタップした際に標準ブラウザを立ち上げようとしています。

window.open = cordova.InAppBrowser.open;
window.open("http://URL/", "_system", 'location=yes');
※URLは実際のURLを記述しております。

なお、上記ロジックはリンク文字タップ時に処理されていることは確認しております。

monacaデバッガーでは、意図した通り標準ブラウザが立ち上がるのですが、apkファイルを作成(ビルド後)しスマホにインストールしたアプリからだと、標準ブラウザが立ち上がらずwebviewが開いてしまいます。

デバッガーとapkファイル作成しインストールした後では、動作が異なるのでしょうか?
それとも何か設定(必要なもののインストール等)が必要なのでしょうか?

なお、以下の方法でも試しましたが結果は同じくwebviewが立ち上がってしまいま

お忙しい中申し訳ございませんが、ご教授いただけると助かります。
ご教授いただく際に不足している情報などございましたならご指摘いただきますようお願いいたします。

よろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

何度もすみません、手が空いたので実環境でやってみました。
MONACA OnsenUI V2 Minimumテンプレートです。ボタンを押すとヤフーが開くだけです。
ビルド設定 > Cordovaプラグイン > InAppBrowser有効化をお忘れなく。

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
  <script src="components/loader.js"></script>
  <script src="lib/onsenui/js/onsenui.min.js"></script>

  <link rel="stylesheet" href="components/loader.css">
  <link rel="stylesheet" href="lib/onsenui/css/onsenui.css">
  <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css">
  <link rel="stylesheet" href="css/style.css">

  <script>
    ons.ready(function() {
      console.log("Onsen UI is ready!");
    });
  </script>
</head>
<body>
    <ons-button onclick="window.open('https://www.yahoo.co.jp/', '_self')">_self</ons-button>
    <br><br>
    <ons-button onclick="window.open('https://www.yahoo.co.jp/', '_blank')">_blank</ons-button>
    <br><br>
    <ons-button onclick="window.open('https://www.yahoo.co.jp/', '_system')">_system</ons-button>
</body>
</html>


上記でビルドし、「_system」のボタン押下でchromeが起動できました。(検証はandroid機です)
ご参考まで。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/31 09:59

    ご教授ありがとうございます!
    おかげさまで目的だった標準ブラウザでを立ち上げることができました!
    本当にありがとうございます。

    結果的には、ご教授いただいたビルド時の
    ビルド設定 > Cordovaプラグイン > InAppBrowser有効化
    を行っていなかったことが原因のようです。
    勉強不足でした。

    monacaデバッガーで確認した際には意図したとおり標準ブラウザが立ち上がっていたので安心してそのままビルドしておりました。ビルド時にInAppBrowserを有効化しなければいけなかったのですね。

    勉強不足でみなさんにご迷惑をおかけし申し訳ございませんでした。
    本当に助かりました。ありがとうございます。

    ご助言いただきました皆様にも感謝申し上げます。ありがとうございました。

    キャンセル

0

実行環境でデフォルトのブラウザがどうなっているか調べてみてください。
可能性の一つとして、インストール時に書き換えてはいませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/29 11:30

    これでビンゴの場合もあるでしょうし、そうでない場合もあるでしょう。
    調査はやってみなければわかりません。

    キャンセル

  • 2018/01/29 11:43

    大変失礼いたしました。
    確認したところ、
    標準ブラウザ(アプリ名はブラウザ)は、既定で開く:一部デフォルトを設定
    Chromeは既定で開く:既定の設定なし
    となっております。
    メールなどにURLが記載されている場合、URLをタップすると標準ブラウザが立ち上がっている状況です。

    キャンセル

  • 2018/01/29 11:55

    デフォルトのブラウザをChromeに変更してみました。
    monacaデバッガーからリンクをタップするとChromeが立ち上がるようになりました(変更前は標準ブラウザ)。
    しかし、インストールしたアプリでリンクをタップするとやはりwebviewで開くという状況です。

    キャンセル

0

横から失礼します。
そもそも、cordova.InAppBrowser.open()自体がWebViewを使用するための関数かと思いますが…

公式のリファレンスをご確認下さい。
https://docs.monaca.io/ja/reference/cordova_5.2/inappbrowser/

今回の場合は「WebViewを使いたくない」訳ですから、

window.open = cordova.InAppBrowser.open;

の記述を削除してみてはいかがですか?
(※やった事ないのでそれであってるかは未確認です。)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/30 15:21

    横から失礼します。
    オプションに "_system" を指定しているので、ドキュメントの説明「_system: システム標準の Web ブラウザー ( system’s web browser ) を開きます。」の動作になるはずです。

    キャンセル

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

  • ただいまの回答率 89.97%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる