質問編集履歴

5

誤字

2020/07/28 05:11

投稿

JagdFeind
JagdFeind

スコア8

test CHANGED
File without changes
test CHANGED
@@ -276,4 +276,4 @@
276
276
 
277
277
  また、Blankプロジェクトを作成し、BarcodeScannerのみ有効にし、サンプルコードのまま動かすと、こちらはうまくいきました。
278
278
 
279
- このことから他のプラムが邪魔をしているわけではなさそうです。
279
+ このことから他のプインが邪魔をしているわけではなさそうです。

4

20200728 やったことを追記

2020/07/28 05:11

投稿

JagdFeind
JagdFeind

スコア8

test CHANGED
File without changes
test CHANGED
@@ -269,3 +269,11 @@
269
269
  Scanning failed: TypeError: Cannnot read property 'handleEvent' of undefined
270
270
 
271
271
  ```
272
+
273
+ 2020/07/28 追記
274
+
275
+ BarcodeScannerプラグインのみ有効にし、プログラムはサンプルのコードのままで動作させましたが、やはり成功時に呼び出されるalertが表示されませんでした。
276
+
277
+ また、Blankプロジェクトを作成し、BarcodeScannerのみ有効にし、サンプルコードのまま動かすと、こちらはうまくいきました。
278
+
279
+ このことから他のプログラムが邪魔をしているわけではなさそうです。

3

誤字

2020/07/28 05:10

投稿

JagdFeind
JagdFeind

スコア8

test CHANGED
File without changes
test CHANGED
@@ -188,7 +188,7 @@
188
188
 
189
189
  (2020/07/27 追記)
190
190
 
191
- Promiseを用いた非同期処理を実践してみましやはり動作しません。しかし、後述するような文がログに出力されました。
191
+ Promiseを用いた非同期処理を実践したところ、後述するような文がログに出力されました。以下に示すのはPromiseを用いたjsコードです。
192
192
 
193
193
 
194
194
 
@@ -262,7 +262,7 @@
262
262
 
263
263
 
264
264
 
265
- 際に読み込むと、catch()の方が実行(失敗)されました。このエラーを修正すればバーコードスキャナーを使えるようになりそうですが、、、
265
+ 上記コードを行したころ、catch()の方が実行(失敗)されました。このエラーを修正すればバーコードスキャナーを使えるようになりそうですが、、、
266
266
 
267
267
  ```text
268
268
 

2

07/27での追記:書き換えたjsの内容と新たに出てきたエラーについて

2020/07/27 07:07

投稿

JagdFeind
JagdFeind

スコア8

test CHANGED
File without changes
test CHANGED
@@ -183,3 +183,89 @@
183
183
  GPSなどでバックグラウンド処理を有効にしていると、ときどき動作しなくなるという旨の記事を見たため、それを回避するコードを入力しました。(上記にはありません)
184
184
 
185
185
  必要なプラグインのインポートのし忘れやHTMLファイルでsrcの読み込み順番の間違えによるエラー等のチェックを行いましたが、解決には至りませんでした。
186
+
187
+
188
+
189
+ (2020/07/27 追記)
190
+
191
+ Promiseを用いた非同期処理を実践してみましたが、やはり動作しません。しかし、後述するような文がログに出力されました。
192
+
193
+
194
+
195
+ ```javascript
196
+
197
+ function scan(){
198
+
199
+ return new Promise((resolve,reject) =>{
200
+
201
+ document.addEventListener("deviceready", cordova.plugins.barcodeScanner.scan(
202
+
203
+ function (result) {
204
+
205
+ resolve(result.text);
206
+
207
+ },
208
+
209
+ function (error) {
210
+
211
+ reject(error);
212
+
213
+ },
214
+
215
+ {
216
+
217
+ preferFrontCamera : false, // iOS and Android
218
+
219
+ showFlipCameraButton : true, // iOS and Android
220
+
221
+ showTorchButton : true, // iOS and Android
222
+
223
+ //torchOn: true, // Android, launch with the torch switched on (if available)
224
+
225
+ saveHistory: true, // Android, save scan history (default false)
226
+
227
+ prompt : "Place a barcode inside the scan area", // Android
228
+
229
+ resultDisplayDuration: 500, // Android, display scanned text for X ms. 0 suppresses it entirely, default 1500
230
+
231
+ formats : "QR_CODE,PDF_417", // default: all but PDF_417 and RSS_EXPANDED
232
+
233
+ //orientation : "landscape", // Android only (portrait|landscape), default unset so it rotates with the device
234
+
235
+ disableAnimations : true, // iOS
236
+
237
+ disableSuccessBeep: true // iOS and Android
238
+
239
+ }
240
+
241
+ ), false);
242
+
243
+ });
244
+
245
+ }
246
+
247
+
248
+
249
+ function scanBarcode(){
250
+
251
+ scan().then(response => alert(`Scanning Success: ${response}`))
252
+
253
+ .catch(error => alert(`Scanning failed: ${error}`))
254
+
255
+ .finally(() => console.log('終了'));
256
+
257
+ }
258
+
259
+ }
260
+
261
+ ```
262
+
263
+
264
+
265
+ 実際に読み込むと、catch()の方が実行(失敗)されました。このエラーを修正すればバーコードスキャナーを使えるようになりそうですが、、、
266
+
267
+ ```text
268
+
269
+ Scanning failed: TypeError: Cannnot read property 'handleEvent' of undefined
270
+
271
+ ```

1

使用手順と試したことの追加

2020/07/27 07:05

投稿

JagdFeind
JagdFeind

スコア8

test CHANGED
@@ -1 +1 @@
1
- MonacaでQRコードリーダでバーコード等読み取LocalStorageに保存したい
1
+ Monacaでバーコード等から読み取ったデータをLocalStorageに保存したい
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Monacaなどアプリ開発は初心者レベルなのでご教授願います。
8
8
 
9
- 使用しているバーコードプラグインはPhoneGap Barcode Scannerです。
9
+ 使用しているバーコードプラグインはPhoneGap Barcode Scanner 8.1.0 です。
10
10
 
11
11
 
12
12
 
@@ -78,10 +78,108 @@
78
78
 
79
79
  ```
80
80
 
81
+ ```HTML
82
+
83
+ <!DOCTYPE HTML>
84
+
85
+ <html>
86
+
87
+ <head>
88
+
89
+ <meta charset="utf-8">
90
+
91
+ <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
92
+
93
+ <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'">
94
+
95
+ <link rel="stylesheet" href="components/loader.css">
96
+
97
+ <link href="css/html5reset-1.6.1.css" rel="stylesheet">
98
+
99
+ <link href="css/style.css" rel="stylesheet">
100
+
101
+ <link rel="stylesheet" href="components/loader.css">
102
+
103
+ <script src="js/lib/jquery-3.5.1.min.js"></script>
104
+
105
+ <script src="components/loader.js"></script>
106
+
107
+ <script>
108
+
109
+ function scanBarcode() {
110
+
111
+ cordova.plugins.barcodeScanner.scan( function(result) {
112
+
113
+ alert("We got a barcode\n" +
114
+
115
+ "Result: " + result.text + "\n" +
116
+
117
+ "Format: " + result.format + "\n" +
118
+
119
+ "Cancelled: " + result.cancelled);
120
+
121
+ }, function(error) {
122
+
123
+ alert("Scanning failed: " + error);
124
+
125
+ }
126
+
127
+ );
128
+
129
+
130
+
131
+ }
132
+
133
+ </script>
134
+
135
+ </head>
136
+
137
+ <body>
138
+
139
+ <header>
140
+
141
+ <div class="header-bar">
142
+
143
+ <h1>QRコードリーダ</h1>
144
+
145
+ <a href="menu.html" class="btn-back"></a>
146
+
147
+ </div>
148
+
149
+ </header>
150
+
151
+
152
+
153
+ <input type="button" onClick ="scanBarcode()" value ="Scan" />
154
+
155
+
156
+
157
+ <footer>
158
+
159
+ <a href="javascript:scanBarcode();" class="big-btn blue">Code Read</a>
160
+
161
+ </footer>
162
+
163
+ </body>
164
+
165
+ </html>
166
+
167
+ ```
168
+
169
+ 該当の画面を開く(アプリを動かす)とヘッダに「QRコードリーダ」とひとつ前の画面に戻るボタン、フッタにコードリーダを呼び出すボタンが配置された画面が表示されます。
170
+
171
+ コードリーダを呼び出すボタンを押すとコードリーダが呼び出されます。その後QRコードなどにかざすと、画面下側に「コードが読み込まれました:<URL>」のような内容が表示されます。
172
+
173
+ しかし、戻った時にalertのポップアップが表示されるはずなのですが、これが出てきません。
174
+
175
+ LocalStorageにも変数が追加されていないため、おそらく成功した時の関数が実行されていません。
176
+
177
+ これをどうにかしたいのですが、似たような問題とそれの解決策がなかったため質問させていただきました。
178
+
81
179
 
82
180
 
83
181
  ### 試したこと
84
182
 
183
+ GPSなどでバックグラウンド処理を有効にしていると、ときどき動作しなくなるという旨の記事を見たため、それを回避するコードを入力しました。(上記にはありません)
85
184
 
86
-
87
- GPSどでバックラウド処理を有効にていると、ときどき動作しなくなるという旨記事を見たため、それを回避す入力しました。(上記にはりません
185
+ 必要プラのインポートの忘れやHTMLファイルでsrc読み込み順番の間違えによエラ等のチェック行いましたが、解決にはりませんでした。