已有Android工程集成DCloud页面

DCloud是HTML5开发App的一个模式, 由国人开发的, 介绍就不多说了, 直接官网看吧.

网址: http://www.dcloud.io/

优势呢, 就是支持一些常见的国产第三方库, 如微信, 微博, 高德一类的.

劣势呢, 竟然不能直接用gradle加载库, 没有使用maven管理! 文档也不是很详细.

那么我们怎么集成到项目里呢? 我们就拿HelloWorld来测试一下.

1. 准备

首先下载SDK代码

http://download.dcloud.net.cn/[email protected]_20150921.zip

直接解压就行, 我们需要熟悉的是HBuilder-Integrate这个工程.

新建一个崭新的HelloWorld工程.

依次需要添加libs, assets, jniLibs, 没有则在工程内创建对应的文件夹.

加载依赖Jar包, 把HBuilder-Integrate的libs的内容全部复制到新的工程.

加载libs库(build.gradle, 默认): compile fileTree(dir: ‘libs’, include: [‘*.jar’])

注意: 如果类出现冗余冲突, 则把jar包删掉即可. 因为库较多, 所以必然会和已有的库冲突, 删掉冲突的即可. 当然在实际的开发中, 也不必全部引入, 需要什么加载什么就行.

把assets的内容全部复制到新的工程.

assets内容就是H5的页面, 在main下新建assets文件夹就行.

把jniLibs的内容全部复制到新的工程.

在AndroidManifest中添加权限, 因为Demo用的功能较多, 权限特别多!

准备工作已经完成.

2. 修改工程

修改项目的layout, 添加一个FrameLayout, 用来加载H5页面.

<RelativeLayout...>

    ...

    <FrameLayout
        android:id="@+id/js_contaner"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

MainActivity中添加H5的内容.

先复制WebAppMode类, 用于连接Activity和H5页面, 不用修改.

再添加代理

    private EntryProxy mEntryProxy;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ...

        if (mEntryProxy == null) {
            FrameLayout f = (FrameLayout) findViewById(R.id.js_contaner);
            wm = new WebappMode(this, f);
            mEntryProxy = EntryProxy.init(this, wm);
            mEntryProxy.onCreate(savedInstanceState, SDK.IntegratedMode.WEBAPP, wm);
        }
    }

    @Override
    public void onPause() {
        mEntryProxy.onPause(this);
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        mEntryProxy.onResume(this);
    }

    @Override
    protected void onDestroy() {
        mEntryProxy.onStop(this);
        super.onDestroy();
    }

注意: onDestroy调用的是onStop, 这样在后退时不会完全关闭连接, 启动时就可以直接加载. 否则会出现后退之后, 无法加载, 空页面的情况.

3. 效果

OK, 启动一下看看效果吧!

DCloud的Demo写的还可以, 里面的功能比较丰富.

OK, enjoy it.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 22:06:01

已有Android工程集成DCloud页面的相关文章

Android开发:app工程集成银联支付功能(客户端)

Android开发:app工程集成银联支付功能(客户端) email:[email protected] 上一篇博文完成了服务器端的集成,可参考: Android开发:app工程集成银联支付功能(服务器端).这一篇博文完成客户端的集成. 一.功能描述 银联支付流程如下所示: 上一篇尝试了tn的获取,本篇将跑通整个流程. 二.实现部分 先说一下我的IDE是as(Android Studio)+win7 64位 2.1配置,依旧是配置 按照官方说明文档,就可以完成,我在这里贴上结构图,因为as的特殊

全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程

本方案以 RHEL / Centos 64位Linux操作系统为例,因为这是目前最常见的服务器环境. 一.安装Java SDK. 建议,不要使用诸如yum之类的玩意自动安装,因为openJDK之类的东东最终各种幺蛾子跑不起来.老老实的去oracle网站下载至少Java7 64位的最终版本,手动安装之,配置好系统path和JAVA_HOME环境变量. vim ~/.bash_profile export JAVA_HOME=<Java安装路径> PATH=$PATH:$JAVA_HOME/bin

【已解决】unity4.2.0f4 导出Android工程报错:Error building Player: ArgumentException: Illegal characters in path.

你看到的这个文章来自于http://www.cnblogs.com/ayanmw 使用unity3D开发的一个客户端,需要导出为Android工程,然后接入一些第三方android SDK. unity版本 操作系统为: OS 名称: Microsoft Windows 7 旗舰版 OS 版本: 6.1.7601 Service Pack 1 Build 7601 OS 制造商: Microsoft Corporation OS 配置: 独立工作站 OS 构件类型: Multiprocessor

使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人员)通过手机扫描二维码后就能直接安装测试包. 该需求具有一定的普遍性,基本上所有开发APP的团队都可能会用到,因此我将整个需求实现的过程整理后形成此文,并且真正地做到了零基础上手,到手即飞.开箱即用,希望能对大家有所帮助. 首先,先给大家展示下平台建设完成后的整体效果: 该平台主要实现的功能有3点:

Android App集成支付宝

原地址:http://blog.csdn.net/wenbingoon/article/details/7933078 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能.人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验.谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍

Android工程中共主线差异化打包方案说明

简介 智能家居APP出海版本已启动开发,由于出海版本维护周期较长,在国内Master分支的基础上,为海外版本拉取单独的分支,会额外增加开发和维护成本,影响正常的开发进度. 需求分析 同一个工程,通过差异化的设计编码,构建出两套差异化的版本,实现在同一个工程下管理不同的版本的目的. 其中,差异化版本之间,存在以下异同点: 不同版本之间,大部分代码相同,公用一套公共组件,底层代码等: 不同版本之间,需要差异化实现不同的功能,包括显示(xml)不同,逻辑(java)不同,配置(Manifest)不同等

在Android中集成flutter

flutter可能是未来跨平台开发的又一技术框架,那么对于一个app,我们不可能完全用flutter来开发,那么就意味着我们需要在已有的Android代码中去集成flutter.目前这一技术还处于预览状态,并且还要切换flutter的channel为mater分支.如下,官方原话: 那么我们在集成之前需要查看现在flutter处于什么渠道:我的是处于master分支,如果你以前没改过的话,应该是beta分支,那么可以执行: flutter channel master 进行切换. 下面正式开始集

清除Android工程中没用到的资源

项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理掉这些垃圾,对于一个稍微大一点的工程来说,手工清理明显是不现实的,这就需要一个方法做这些事情. 清理资源文件 要清理没用的资源,首要的工作当然是找到他们,我们知道Anroid SDK中有一个工具叫lint,可以帮助我们查看工程中存在的问题,其中有一项功能就是查找没用到的资源,这样这一步就简单了,直接

GJM : Unity3D HIAR -【 快速入门 】 五、导出 Android 工程、应用

导出 Android 工程.应用 在开始之前,请务必先保存您的工程,同时确认您已经安装 Android SDK 和 JDK.安装操作请参考以下链接: 搭建开发环境 Step 1. 设置 Android SDK 和 JDK 路径 在 Unity 中,点击 Edit > Preferences-,在弹出的 Unity Preferences 对话框中点击 External Tools 选项,将 Android SDK 和 JDK 路径分别设置为已安装 SDK 的根目录. Step 2. 选择平台 在