闲言少叙,直接开始代码:
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
添加依赖 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>dataUtilsname>
<description>process data in serverdescription>
<license>Apache 2.0license>
<keywords>cordova,dataUtilskeywords>
<js-module src="www/dataUtils.js" name="dataUtils">
<clobbers target="dataUtils" />//ionic工程引用的名字
js-module>
<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>
<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;
}
}