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

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

iphone开发之旅--环境搭建(1)

迅雷下载Mac OSX镜像,镜像为dmg格式,下载后需要使用UltraISO转换为iso格式,我尝试下过好几个版本的镜像,都不能正常安装,只有下面这个镜像是可以使用的. ed2k://|file|[Mac.OSX.Mountain.Lion.%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F].TLF-SOFT-Mac_OSX_Mountain_Lion_v10.8_REPACK_MACOSX-MONEY.dmg|4348218934|f16691a255b95882ba5

ESP8266开发之旅 基础篇① 走进ESP8266的世界

本博客由 单片机菜鸟 个人撰写,仅仅做个人技术交流分享,不做任何商业用途,不经允许,切勿转载.如有不对之处,请留言,本人及时更改. 一.基础篇 ESP8266开发之旅 基础篇① 走进ESP8266的世界 ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境 ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明 ESP8266开发之旅 基础篇④ ESP8266与EEPROM ESP8266开发之旅 基础篇⑤ ESP8266 SPI通信和I2C通信

勤拂拭软件Android开发之旅(1) 之 Android 开发环境搭建

勤拂拭软件工作室原创出品,欢迎转载,欢迎交流. 转载请注明原文:http://www.cnblogs.com/wangleiblog/p/6019063.html 勤拂拭软件Android开发之旅目录 1 前言 很多朋友都想开始自己的Android开发之旅,但是遇到困难重重.从最开始接触Android开发,从搭建开发环境就花了我大部分时间.所以,作为Android开发第一步,开发环境的搭建,显得基础而重要,下面介绍一种快速搭建Android开发环境的方法,以帮助更多朋友快速上手.本篇文章是讲述在

Android开发之基于AndroidStudio环境搭建和工程创建

断断续续的学习安卓也有一段时间了.因为之前是搞iOS开发的, 之前有关iOS的博客请看<我的iOS开发系列博文>.<我的Objective-C系列文章>和<窥探Swift系列博客说明及其Swift版本间更新>,<设计模式系列文章>,<重构系列文章>,在搞安卓期间好多都是类比着iOS来学的,安卓开发和iOS开发还是有许多相似之处的,控件的使用也都是大同小异,因为之前接触过过JavaEE的东西,所以搞搞安卓还是比较顺利的. 还是由浅入深,本篇博客先简

使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框架来开发项目,而这些框架一般不是单独使用的,经常是Struts2+Spring3+Hibernate.SpringMVC+Spring+Hibernate.SpringMVC+Spring+Mybatis这几种组合中的一种,也就是多个框架配合起来使用.今天来总结一下如何使用Maven搭建Struts

IDEA下从零开始搭建SpringBoot工程

(1)它是Spring的升级版,Spring容器能做到的事情,它都能做到,而且更简便,从配置形式上来说,SpringBoot完全抛弃了繁琐的XML文件配置方式,而是替代性地用注解方式来实现,虽然本质来说,是差不多的(类似包扫描,注解扫描,类加载之类). (2)SpringBoot集成的插件更多,从而使用很多服务,都只是引入一个依赖,几个注解和Java类就可以用了,具体的参考相关手册. (3)在Web应用开发这一块,之前的应用一般来说是打包成war包,再发布到相关服务器容器下(例如Tomcat),

Git工程开发实践(六)——Git工程实践扩展

Git工程开发实践(六)--Git工程实践扩展 一.Git提交日志规范 1.Git提交日志模板 Git支持对每次提交的日志信息进行规范,可以通过设置提交模板实现.建立一个gitCommitTemplate文件,内容为: #commit message包含三部分,header, body和footer,其中header必选,body和footer可选. # type(<scope>): <subject> #<body> #<footer> #type字段包含

ESP8266开发之旅 网络篇? SPIFFS——ESP8266 SPIFFS文件系统

1. 前言 ????在前面博文关于ESP8266WiFiWebServer的例程中,大家可以发现,博主基本上都是手动拼装html内容返回,html的内容被固定写在我们的Arduino ESP代码中. ????那么这样就有两点弊端: ESP8266代码相当臃肿 为了开发方便,web server网页除了自身的html内容之外,还包括一些css文件,甚至引入了JQuery库以及一些图片相关资源.如果把这些内容也直接写入到ESP8266代码中,会导致8266整体代码变大,甚至可能超过flash规定的大

Aery的UE4 C++游戏开发之旅(3)蓝图

目录 蓝图 蓝图命名规范 蓝图优化 暴露C++至蓝图 暴露C++类 暴露C++属性 暴露C++函数 暴露C++结构体/枚举 暴露C++接口 蓝图和C++的结合方案 使用继承重写蓝图 使用组合重写蓝图 方案比较 参考 蓝图 大家都知道,蓝图是UE4提供的极其容易上手的一种可视化脚本,更具体的就不说了. 纯靠蓝图搭建的UE4游戏是存在的,但是这类游戏往往优化很差(除非游戏玩法本身的性能需求不高).更合适的流程往往需要程序员编写C++代码创建一些蓝图可用元素,而设计师再通过蓝图快速搭建游戏. 蓝图命名