teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

MonacaクラウドIDEでのテンプレートを使って、シンプルに発現した状況を再現致しました。

2017/04/15 23:56

投稿

kuroneko334
kuroneko334

スコア8

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  外部ブラウザで開きたいもの(GoogleMAPや外部のサイト)があります。
7
7
  onclickの中に外部リンクを開くようのコードを書いて、実行すると
8
8
  ```
9
- 既にログインされています。ログアウトして再度QRコードを読み取ってください。
9
+ 既にログインされています。ログアウトして再度QRコードを読み取ってください。
10
10
  ```
11
11
  というアラートが表示されてしまいます。
12
12
  外部アプリが立ち上がり正常に表示されるのですが、monacaデバッガーアプリに戻るとアラートが表示されてしまいます。
@@ -38,4 +38,138 @@
38
38
  この現象はmonacaデバッガー固有の現象(リリースの際に無視出来るもの)なのか、何か対策が出来るものなのかわからない状態です。
39
39
  解決方法をお教えいただければと思います。
40
40
 
41
- よろしくお願い致します。
41
+ よろしくお願い致します。
42
+
43
+
44
+ ###ご質問を受けての補足です
45
+ >アラートが出ているタイミングと、具体的な「外部ブラウザで開きたいもの」が何なのかもう少し詳しく知りたいですね。
46
+ >monacaから開くときにたとえば自動的にログインするようになっていたとして、既にGoogleChromeが立ち上がっていたら「既にログインされている」という状態になるのかもしれません。
47
+ こちらを受けまして、新規プロジェクトで具体的な発現方法を再現してみました。
48
+
49
+ MonacaクラウドIDE上から新規プロジェクト
50
+ 「OnsenUI AngularJS1」でのSplitterMenuをテンプレートで作成し、
51
+ メニューを1項目をonclick設定して外部リンクを開くようにしてみました。
52
+
53
+ ```html
54
+ <!DOCTYPE HTML>
55
+ <html>
56
+ <head>
57
+ <meta charset="utf-8">
58
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
59
+ <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
60
+ <script src="components/loader.js"></script>
61
+ <script src="lib/angular/angular.min.js"></script>
62
+ <script src="lib/onsenui/js/onsenui.min.js"></script>
63
+ <script src="lib/onsenui/js/angular-onsenui.min.js"></script>
64
+
65
+ <link rel="stylesheet" href="components/loader.css">
66
+ <link rel="stylesheet" href="lib/onsenui/css/onsenui.css">
67
+ <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css">
68
+ <link rel="stylesheet" href="css/style.css">
69
+
70
+ <script>
71
+ ons.bootstrap()
72
+ .controller('AppController', function($scope) {
73
+ this.load = function(page) {
74
+ $scope.splitter.content.load(page);
75
+ $scope.splitter.left.close();
76
+ };
77
+
78
+ this.toggle = function() {
79
+ $scope.splitter.left.toggle();
80
+ };
81
+
82
+
83
+ });
84
+
85
+ ons.ready(function() {
86
+ console.log("Onsen UI is ready!");
87
+
88
+ });
89
+ </script>
90
+ </head>
91
+ <body>
92
+
93
+ <ons-splitter ng-controller="AppController as app" var="splitter">
94
+ <ons-splitter-side side="left" width="220px" collapse swipeable>
95
+ <ons-page>
96
+ <ons-list>
97
+ <ons-list-item ng-click="app.load('home.html')" tappable>
98
+ Home
99
+ </ons-list-item>
100
+ <ons-list-item ng-click="app.load('settings.html')" tappable>
101
+ Settings
102
+ </ons-list-item>
103
+ <ons-list-item onclick="window.open('http://yahoo.co.jp/','_system')" tappable>
104
+ About
105
+ </ons-list-item>
106
+ </ons-list>
107
+ </ons-page>
108
+ </ons-splitter-side>
109
+ <ons-splitter-content page="home.html"></ons-splitter-content>
110
+ </ons-splitter>
111
+
112
+ <ons-template id="home.html">
113
+ <ons-page>
114
+ <ons-toolbar>
115
+ <div class="left">
116
+ <ons-toolbar-button ng-click="app.toggle()">
117
+ <ons-icon icon="md-menu"></ons-icon>
118
+ </ons-toolbar-button>
119
+ </div>
120
+ <div class="center">
121
+ Main
122
+ </div>
123
+ </ons-toolbar>
124
+ <p style="text-align: center; opacity: 0.6; padding-top: 20px;">
125
+ Swipe right to open the menu!
126
+ </p>
127
+ </ons-page>
128
+ </ons-template>
129
+
130
+ <ons-template id="settings.html">
131
+ <ons-page>
132
+ <ons-toolbar>
133
+ <div class="left">
134
+ <ons-toolbar-button ng-click="app.toggle()">
135
+ <ons-icon icon="md-menu"></ons-icon>
136
+ </ons-toolbar-button>
137
+ </div>
138
+ <div class="center">
139
+ Settings
140
+ </div>
141
+ </ons-toolbar>
142
+ </ons-page>
143
+ </ons-template>
144
+
145
+ <ons-template id="about.html">
146
+ <ons-page>
147
+ <ons-toolbar>
148
+ <div class="left">
149
+ <ons-toolbar-button ng-click="app.toggle()">
150
+ <ons-icon icon="md-menu"></ons-icon>
151
+ </ons-toolbar-button>
152
+ </div>
153
+ <div class="center">
154
+ About
155
+ </div>
156
+ </ons-toolbar>
157
+ </ons-page>
158
+ </ons-template>
159
+ </body>
160
+ </html>
161
+ ```
162
+
163
+ ```html
164
+ <ons-list-item onclick="window.open('http://yahoo.co.jp/','_system')" tappable>
165
+ About
166
+ </ons-list-item>
167
+ ```
168
+ こちらをタップすると、そのタイミングで「既にログインされています。ログアウトして再度QRコードを読み取ってください。」と表示されます。
169
+ (タイミングによっては外部リンクを開いた後monacaに戻ってくると表示されることもあります。)
170
+ 外部アプリとしては「Safari」が立ち上がりました。
171
+ この状態でも上記アラートが立ち上がってしまうので困っています。。
172
+ どうにかアラートが表示されないようにすることは出来ないものでしょうか?
173
+ アラートが表示されなければ正常動作で問題ないのですが・・・
174
+
175
+ よろしくお願いいたします。