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

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

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;
   } 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从来不用昵称

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值