闲言少叙,直接开始代码:
1、ionic start faces 默认tab样式工程
ionic platform add [email protected] 可以不指定sdk版本,默认最新的。
ionic build android 编译成android工程
ionic run android 链接手机 直接build 并且安装到手机
2、使用ngCordova插件 访问本地属性。只能在真是手机上测试
bower
install ngCordova
或者直接下载zip包bower
install ngCordova
引入js <scriptsrc="lib/ngCordova/dist/ng-cordova.js"></script>
<scriptsrc="cordova.js"></script>
添加依赖 angular.module(‘myApp‘,[‘ngCordova‘])
安装插件 cordova plugin add ...
3、编写自己的插件,随意访问本地属性或者java、android的任何api,其实就三个文件,plugin.xml Datautils.java dataUtils.js
=========================================plugin.xml-->begin=====================================
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="com.yyb.dataUtils" version="0.0.1"> <name>dataUtils</name> <description>process data in server</description> <license>Apache 2.0</license> <keywords>cordova,dataUtils</keywords> <!--依赖的cordova版本 --> <!-- <engines> <engine name="cordova" version=">=3.0.0" /> </engines> --> <!--页面调用的js的名字[ngExtendCordova.dataUtils]和js位置 --> <js-module src="www/dataUtils.js" name="dataUtils"> <clobbers target="dataUtils" />//ionic工程引用的名字 </js-module> <!-- android --> <platform name="android"> <config-file target="res/xml/config.xml" parent="/*"> <feature name="DataUtils">//dataUtils.js里面调用的java类的名字 <param name="android-package" value="com.yyb.datautils.DataUtils" /> </feature> </config-file> <!-- <config-file target="AndroidManifest.xml" parent="/*"> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> </config-file> --> <source-file src="com/yyb/datautils/DataUtils.java" target-dir="src/com/yyb/datautils" /> </platform> </plugin>
============================plugin.xml-->end============================
===============dataUtils.js-->begin=============
var exec = require(‘cordova/exec‘); var utilExport ={}; utilExport.getByteFromBase64 = function(mills,callback,err) { exec(function(winParam){ callback(winParam); }, function(errParam){ err(errParam); }, "DataUtils", "base64Tbyte", [mills]); //java类名(DataUtils)、方法名称(base64Tbyte)
}; module.exports = utilExport;=============================dataUtils.js-->end=============================================DataUtils.java-->begin=============
package com.yyb.datautils;
import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; import android.util.Base64; import android.util.Log; public class DataUtils extends CordovaPlugin { public String message = ""; public DataUtils() { } CallbackContext callbackContext; public boolean execute(String action, JSONArray args,CallbackContext callbackContext) throws JSONException { this.callbackContext = callbackContext; if (action.equals("base64Tbyte")) { message = args.getString(0); Log.i("DataUtils", message); byte[] result = base64Tbyte(message); if(result==null){ callbackContext.error("args :base64 data is null"); }else{ callbackContext.success(result); } return true; } return false; } /** * base64转换成二进制数据 * @param base64Data -->byte[] * @return */ public byte[] base64Tbyte(String base64Data){ if(null==base64Data||base64Data.length()==0){ return null; } byte[] code =Base64.decode(base64Data.getBytes(), Base64.NO_WRAP); if(code!=null&&code.length>0){ return code; } return null; } }
时间: 2024-10-03 12:33:23