闲言少叙,直接开始代码:
1、ionic start faces 默认tab样式工程
ionic platform add android@3.6.4 可以不指定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;
}
}
Ionic 开发之旅 一(搭建基本工程)(使用ngCordova插件)(开发自己的ngCordova插件)
原文地址:http://blog.csdn.net/asp12345678/article/details/45851037