Ionic 开发之旅 一(搭建基本工程)(使用ngCordova插件)(开发自己的ngCordova插件)

闲言少叙,直接开始代码:

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 src="lib/ngCordova/dist/ng-cordova.js">

src="cordova.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;
   } 
}

你可能感兴趣的:(web前端)