今回のネタはphonegap-plugin-speech-recognitionを使おうとしてReferenceError: SpeechRecognition is not definedで怒られたのと
その対処法についてです。
phonegap-plugin-speech-recognitionとは、入力された文字に対して、その文字を読み取って音声で返してくれるプラグインのことです。
プラグインの紹介をしたところで本題に入らせていただきます。
まず、あるアプリにphonegap-plugin-speech-recognitionを追加して動作確認をしたところReferenceError: SpeechRecognition is not
definedで行き止まりをくらいました。
ん~、インストールしたのにな・・・と思い渋々npm install phonegap-plugin-speech-recognitionをすると
下記の画像のようにエラーがずららっと表示されました。
ここで、試しにnpm lsコマンドでphonegap-plugin-speech-recognationが存在するか確認をしてみました。
するとなにやらにおうエラーを発見
npm ERR! missing: phonegap-plugin-speech-recognition@git+https://github.com/macdonst/SpeechRecognitionPlugin.gitとな・・・
missingのエラーなので、webpack関係ではないし、コルドバのバージョンを指摘されている訳ではない。だとしたら保存形式の関係?
という訳でpackage.jsonの中身を探索してみることに・・・
package.jsonの中身を見てみると、やはりバージョン形式ではなくurl形式で保存されていたので、これで読み込みができていないのでは
と思いpackage.jsonの中の“phonegap-plugin-speech-recognition”: “https://github.com/macdonst/SpeechRecognitionPlugin.git”,を
現行のバージョンである“phonegap-plugin-speech-recognition”: “0.3.0”,に変更
無事にプラグインも動作しました。npm のバージョンを変えたりしていなければこの保存形式で問題ないと思われます。
※githubのアカウントを作って公開鍵を登録しないと”https://github.com/macdonst/SpeechRecognitionPlugin.git”では読み込んでくれない
ことが判りました。gitとか登録していない人は上のようにバージョンを表記する形にしておいてください。