一. 前提:cordova 安装OK
- 按照这里的指南安装cordova:http://cordova.apache.org/#getstarted
-
我自己创建了一个工程:
cordova create VoiceTest
-
进入工程目录:
cd VoiceTest
-
添加两个平台:
cordova platform add ios android
- 1
- 1
-
安装 plugman :
npm install -g plugman
-
试试安装device插件:
cordova plugin add cordova-plugin-device
安装github上的插件
cordova plugin add https://github.com/matrix-yang/TransformVoiceToText.git
- 删除插件:
cordova plugin rm cordova-plugin-device
-
查看已安装插件
cordova plugin ls
二. 使用 plugman 创建插件模板
#创建插件
plugman create --name TransformVoiceToText --plugin_id VoiceToText --plugin_version 1.0.0
#进入插件目录
cd TransformVoiceToText
#plugin.xml 增加Android平台
plugman platform add --platform_name android
生成文件结构
引入依赖JAR包
位置图
配置plugin.xml
这里有几个定义,最好理解一下:
- clobbers : 非常重要。前端工程师在使用的时候通过这个 clobbers 去调用www/MyMath.js的公开方法
- feature 标签定义了 (服务名)name
- param name=”android-package” value=”VoiceToText.TransformVoiceToText” 定义Android平台下的底层实现的 包名.类 :VoiceToText.TransformVoiceToText
修改TransformVoiceToText.js
var exec = require('cordova/exec');
exports.transform = function(arg0, success, error) {
exec(success, error, "TransformVoiceToText", "transform", [arg0]);
};
【success】 : 成功回调
【error 】 : 失败回调
【TransformVoiceToText】 : 服务名(必须和 plugin.xml定义的服务名保持一致)
【transform】 : Action 动作名。(底层实现根据Action字符串调用不同的方法)
【arg0】: 参数,必须是数组。 可以是json的数据:[{“key”:”value”,”key”:”value”}]
————— 也可以是[“value1”,”value2”,”value3”,…]
修改TransformVoiceToText.java
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("transform")) {
//args为前端传入的参数
callbackContext.success("返回信息到前端js的成功的回调");
callbackContext.error("返回信息到前端js失败的回调函数");
return true;
}
return false;
}
将插件打包
sudo plugman createpackagejson .
文件夹下将会多一个package.json
项目安装该插件时读取package.json自动安装插件到项目
前端调用方式
第一个参数为 方言类型 可选参数为
普通话:mandarin
粤 语:cantonese
四川话:lmz
必须传入其中一种,否则报错
调用过程
- js 调用 –>cordova.plugins.TransformVoiceToText.transform(arg0, success, error)
-
cordova的接口exec –> exec(success, error, "TransformVoiceToText", "transform", [arg0]);;
- 调用底层实现各自平台(ios或者Android)下的类TransformVoiceToText。
项目引入插件
cd VoiceTest
安装本地插件
~$ cordova plugin add ../TransformVoiceToText
(如果本地有直接安装,这个只是本地没有插件可以使用这个git库安装)安装github上的插件
cordova plugin add https://github.com/matrix-yang/TransformVoiceToText.git
这时目录应该为
值得注意的一点是
虽然plugins中有transformVoiceToText,但是在安卓实际打包时打包的是platforms下的android目录。所以当我们安装好插件后,需要修改插件功能直接修改platforms下的android目录下的.java文件即可,plugins下的文件不用修改,因为打包APK时并不会将plugins打包。
修改android编译工具的版本(科大讯飞插件版本太低,使用高版本编译不通过)
buildToolsVersion "25.0.3"
前端调用
;
修改package.json
cordova build android
以后点击test即可生成APK
一. 前提:cordova 安装OK
- 按照这里的指南安装cordova:http://cordova.apache.org/#getstarted
-
我自己创建了一个工程:
cordova create VoiceTest
-
进入工程目录:
cd VoiceTest
-
添加两个平台:
cordova platform add ios android
- 1
- 1
-
安装 plugman :
npm install -g plugman
-
试试安装device插件:
cordova plugin add cordova-plugin-device
安装github上的插件
cordova plugin add https://github.com/matrix-yang/TransformVoiceToText.git
- 删除插件:
cordova plugin rm cordova-plugin-device
-
查看已安装插件
cordova plugin ls
二. 使用 plugman 创建插件模板
#创建插件
plugman create --name TransformVoiceToText --plugin_id VoiceToText --plugin_version 1.0.0
#进入插件目录
cd TransformVoiceToText
#plugin.xml 增加Android平台
plugman platform add --platform_name android
生成文件结构
引入依赖JAR包
位置图
配置plugin.xml
这里有几个定义,最好理解一下:
- clobbers : 非常重要。前端工程师在使用的时候通过这个 clobbers 去调用www/MyMath.js的公开方法
- feature 标签定义了 (服务名)name
- param name=”android-package” value=”VoiceToText.TransformVoiceToText” 定义Android平台下的底层实现的 包名.类 :VoiceToText.TransformVoiceToText
修改TransformVoiceToText.js
var exec = require('cordova/exec');
exports.transform = function(arg0, success, error) {
exec(success, error, "TransformVoiceToText", "transform", [arg0]);
};
【success】 : 成功回调 【error 】 : 失败回调 【TransformVoiceToText】 : 服务名(必须和 plugin.xml定义的服务名保持一致) 【transform】 : Action 动作名。(底层实现根据Action字符串调用不同的方法) 【arg0】: 参数,必须是数组。 可以是json的数据:[{“key”:”value”,”key”:”value”}] ————— 也可以是[“value1”,”value2”,”value3”,…]
修改TransformVoiceToText.java
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("transform")) {
//args为前端传入的参数
callbackContext.success("返回信息到前端js的成功的回调");
callbackContext.error("返回信息到前端js失败的回调函数");
return true;
}
return false;
}
将插件打包
sudo plugman createpackagejson .
文件夹下将会多一个package.json
项目安装该插件时读取package.json自动安装插件到项目
前端调用方式
第一个参数为 方言类型 可选参数为
普通话:mandarin
粤 语:cantonese
四川话:lmz
必须传入其中一种,否则报错
调用过程
- js 调用 –>cordova.plugins.TransformVoiceToText.transform(arg0, success, error)
-
cordova的接口exec –> exec(success, error, "TransformVoiceToText", "transform", [arg0]);;
- 调用底层实现各自平台(ios或者Android)下的类TransformVoiceToText。
项目引入插件
cd VoiceTest
安装本地插件
~$ cordova plugin add ../TransformVoiceToText
(如果本地有直接安装,这个只是本地没有插件可以使用这个git库安装)安装github上的插件
cordova plugin add https://github.com/matrix-yang/TransformVoiceToText.git
这时目录应该为
值得注意的一点是
虽然plugins中有transformVoiceToText,但是在安卓实际打包时打包的是platforms下的android目录。所以当我们安装好插件后,需要修改插件功能直接修改platforms下的android目录下的.java文件即可,plugins下的文件不用修改,因为打包APK时并不会将plugins打包。
修改android编译工具的版本(科大讯飞插件版本太低,使用高版本编译不通过)
buildToolsVersion "25.0.3"
前端调用
;
修改package.json
cordova build android
以后点击test即可生成APK