Ionic + cordova 构建 webapp 项目

 更新时间:2016年10月2日 16:23  点击:1637
下面我们来看一篇关于Ionic + cordova 构建 webapp 项目的例子,希望此教程能够给各位同学带来帮助。

开发环境是Windows,ubuntu + mac同理,测试平台为android,ios同理。

1.安装node.js

https://nodejs.org/dist/v4.4.5/
http://nodejs.org/download/

2.设置npm镜像

npm config set registry https://registry.npm.taobao.org

3.安装 cordova+ionic

npm install -g cordova ionic
npm update -g cordova ionic //更新

4.创建APP项目

ionic start myapp [template]
template:blank(空项目)、tabs(带导航条)、sidemenu(带侧滑菜单)
ionic platform add android
ionic build android
ionic platform add ios
ionic build ios
ionic run android //连接数据线直接测试

安卓打包环境配置:

1.JDK安装配置

   下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
    安装的时候,jdk、jre装在同级目录下。
    配置环境变量,在系统变量中新建 JAVA_HOME,值为jdk的安装目录 D:\Program Files\Java\jdk1.8.0_91。在PATH中添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 。系统变量中新建 CLASSPATH,值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。
    java -version

2.Android SDK

    下载地址:http://developer.android.com/sdk/index.html 或 http://www.android-studio.org/
    安装完成后配置环境变量,在系统变量中新建 ANDROID_HOME,值为安装目录 D:\Program Files\Android\android-sdk 。在PATH中添加 D:\Program Files\Android\android-sdk;%ANDROID_HOME%\tools; 。
    android -h

这时候SDK安装工具算是好了,然后就可以从SDK Manager中管理安装需要的SDK版本和GOOGLE API版本和文档了。这里主要看你安装的ionic对应的android版本,在你的ionic项目目录的platforms\android\project.properties文件中可以找到target=android-23。这里标识了项目所用的API版本,后面的数字刚好对应你在SDK Manager中看到的那些API后面的数字。

问题:

下面我们来看一篇关于Json与Gson之简单对象转化和带泛型的List转化的例子,希望这篇文章能够给各位带来帮助。


Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。在Android Studio中直接引用

compile 'com.google.code.gson:gson:2.2.4'
下面先看一下怎么转化对象:

实体类如下:

public class TestEneity {
 
    /**
     * image : image/mango_cover.jpg
     * content : 火爆进口马来西亚特产大金芒果包邮500G
     * price : 18.9
     * PreferentialPrice : 14.9
     * you : 免邮费
     * number : 23
     */
 
    private String image;
    private String content;
    private String price;
    private String PreferentialPrice;
    private String you;
    private String number;
 
    public String getImage() {
        return image;
    }
 
    public void setImage(String image) {
        this.image = image;
    }
 
    public String getContent() {
        return content;
    }
 
    public void setContent(String content) {
        this.content = content;
    }
 
    public String getPrice() {
        return price;
    }
 
    public void setPrice(String price) {
        this.price = price;
    }
 
    public String getPreferentialPrice() {
        return PreferentialPrice;
    }
 
    public void setPreferentialPrice(String PreferentialPrice) {
        this.PreferentialPrice = PreferentialPrice;
    }
 
    public String getYou() {
        return you;
    }
 
    public void setYou(String you) {
        this.you = you;
    }
 
    public String getNumber() {
        return number;
    }
 
    public void setNumber(String number) {
        this.number = number;
    }
}

使用方式:


TestEneity testEntity=new TestEneity();
testEntity.setImage("image/mango_cover.jpg");
testEntity.setContent("火爆进口马来西亚特产大金芒果包邮500G");
testEntity.setPrice("18.9");
testEntity.setPreferentialPrice("14.9");
testEntity.setYou("免");
testEntity.setNumber("23");
 
System.out.println("----------简单对象之间的转化-------------");
// 简单的bean转为json
Gson gson=new Gson();
String s1 = gson.toJson(testEntity);
System.out.println("简单Bean转化为Json===" + s1);
 
// json转为简单Bean
TestEneity tset = gson.fromJson(s1, TestEneity.class);
System.out.println("Json转为简单Bean===" + tset);

List<TestEneity> testEntityList=new ArrayList<>();
for(int i=0;i<3;i++){
TestEneity testEntity=new TestEneity();
testEntity.setImage("image/mango_cover.jpg");
testEntity.setContent("火爆进口马来西亚特产大金芒果包邮500G");
testEntity.setPrice("18.9");
testEntity.setPreferentialPrice("14.9");
testEntity.setYou("免");
testEntity.setNumber("23");
testEntityList.add(testEntity);
System.out.println("----------带泛型的List之间的转化-------------");
// 带泛型的list转化为json
Gson gson=new Gson();
String s2 = gson.toJson(testEntityList);
System.out.println("带泛型的list转化为json==" + s2);
 
// json转为带泛型的list
List<TestEneity> retList = gson.fromJson(s2,
new TypeToken<List<TestEneity>>() {
}.getType());
for (TestEneity stu : retList) {
System.out.println(stu);
}
}

下面我们来看一篇关于没有配置NDK的Path环境变量而运行ndk-build命令时报错问题原因分析与此问题的解决办法,具体的如下。

如果在PATH环境变量下配置NDK的根目录,那么将有可能会报'ndk-build'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.的错误.
如下:

'ndk-build'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.

解决办法

这时,只需要将NDK的根目录路径拷贝到path中即可.

下面来看一篇关于Android.mk文件写法及错误提示原因分析,这个看是写错了还是逻辑错误吧,具体的来参考这篇教程。

//根据文档中的提示创建的Android.mk中的文本

 代码如下 复制代码

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := crypt //这里是库名
LOCAL_SRC_FILES := crypt.c //这里是库源码文件名

include $(BUILD_SHARED_LIBRARY)

当我写错了这个android.mk文件的时候报了一个"LOCAL_MODULE_FILENAME must not contain a file extension"的错误:

错误提示如下图所示:

[Jni]Android.mk文件写法及错误提示

[Jni]Android.mk文件写法及错误提示
[!--infotagslink--]

相关文章

  • 基于Ionic3实现选项卡切换并重新加载echarts

    这篇文章主要介绍了基于Ionic3实现选项卡切换并重新加载echarts,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-24
  • 利用Node.js获取项目根目录的小技巧

    这篇文章介绍的是一个小技巧来获取node.js项目根目录,这个技巧非常实用。有需要的朋友们可以参考借鉴,下面来一起看看吧。...2016-10-02
  • Ionic默认的Tabs模板使用实例

    这篇文章主要为大家详细介绍了Ionic默认的Tabs模板使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-09-01
  • 基于Pycharm加载多个项目过程图解

    这篇文章主要介绍了基于Pycharm加载多个项目过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-04-22
  • intellij idea如何将web项目打成war包的实现

    这篇文章主要介绍了intellij idea如何将web项目打成war包的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-04
  • Idea打包springboot项目没有.original文件解决方案

    这篇文章主要介绍了Idea打包springboot项目没有.original文件解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-26
  • react+ts实现简单jira项目的最佳实践记录

    这篇文章主要介绍了react+ts实现简单jira项目,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-07-30
  • Ionic快速安装教程

    Ionic 是目前最有潜力的一款 HTML5 手机应用开发框架。通过 SASS 构建应用程序,它 提供了很多 UI 组件来帮助开发者开发强大的应用。接下来小编给大家介绍如何安装 Ionic 在自己的电脑上搭建一个简单的小应用,感兴趣的朋友一起看看吧...2016-06-12
  • Ionic如何实现下拉刷新与上拉加载功能

    在日常项目开发中我们经常见到下拉刷新上拉加载的功能,接下来通过本文给大家介绍ionic如何实现下拉刷新与上拉加载的相关资料,需要的朋友可以参考下...2016-06-12
  • Tomcat首次部署web项目流程图解

    这篇文章主要介绍了Tomcat首次部署web项目流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-11
  • Vue项目中如何运用vuex的实战记录

    如果说是JQuery是手工作坊,那么Vue.js就像是一座工厂,虽然Vue.js做的任何事情JQuery都可以做,但无论是代码量还是流程规范性都是前者较优,下面这篇文章主要给大家介绍了关于Vue项目中如何运用vuex的相关资料,需要的朋友可以参考下...2021-09-29
  • Angularjs---项目搭建图文教程

    下面小编就为大家带来一篇Angularjs---项目搭建图文教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-07-25
  • ionic中列表项增加和删除的实现方法

    在项目中遇到表单似的页面,需要进行增加一行和减少一行的操作,基于ionic怎么实现呢?下面小编给大家分享ionic中列表项增加和删除的实现方法,一起看看吧...2017-01-26
  • Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析

    这篇文章主要介绍了Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析的相关资料,需要的朋友可以参考下...2016-01-21
  • idea导入项目框架的详细操作方法

    大家使用idea开发工具时经常会需要导入项目框架,纠结该怎么操作呢,今天小编给大家分享一篇图文教程,帮助大家解决idea导入项目框架的问题,感兴趣的朋友一起看看吧...2021-05-11
  • 如何在IOS中使用Cordova插件

    这篇文章主要介绍了如何在IOS中使用Cordova插件,包括搭建和使用方法,如果对Cordova感兴趣的同学,可以参考下...2021-04-14
  • Vue脚手架学习之项目创建方式

    这篇文章主要给大家介绍了关于Vue脚手架学习之项目创建方式的相关资料,文中通过介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-11
  • ionic实现可滑动的tab选项卡切换效果

    这篇文章主要为大家详细介绍了ionic实现可滑动的tab选项卡切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-09-01
  • idea导入项目不显示maven侧边栏的问题及解决方法

    这篇文章主要介绍了idea导入项目不显示maven侧边栏的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-22
  • .Net Core库类项目跨项目读取配置文件的方法

    这篇文章主要介绍了.Net Core库类项目跨项目读取配置文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2021-09-22