文档章节

在做weex开发时使用leancloud文件上传

c
 chenchen99
发布于 2017/02/06 20:47
字数 639
阅读 94
收藏 1
点赞 0
评论 0

不同于移动端原生开发,当开发者使用weex移动开发时,使用第三方SDK比较棘手。因为第三方的JS SDK是无法直接拿来使用的,环境不同。必须使用原生SDK,下面我介绍一下自己是如何在weex开发时(安卓)使用leancloud的服务的。

首先去leancloud的安卓SDK下载页面,下载SDK,这里我只使用了最基础的SDK包

其实用Gradle也可以啊,我喜欢下载手动集成。
然后在mainApplication.java文件中onCreat()方法里初始化

    AVOSCloud.initialize(this,yourappid,yourappkey)   
做过weex开发都知道,这个方法里面还会初始化WXSDKEngine和ImageAdapter,它们不冲突。
 

    InitConfig config = new InitConfig.Builder().setImgAdapter(new ImageAdapter()).build();
    WXSDKEngine.initialize(this,config);
现在进入正题了,如何在weex页面实现上传图片呢?
Step.1  扩展一个Module,调用手机系统的图库

    @WXModuleAnno(runOnUIThread = true)
    public void uploadimage(){
        int REQUESTCODE_PICK = 0;
        Intent intent;
        if(Build.VERSION.SDK_INT < 19){
            Log.d("chenlei api level","Your api is lower than 19");
            intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");
        }else{
            Log.d("chenlei api level","Your api is higher than 19");
            intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        }
        ((Activity)mWXSDKInstance.getContext()).startActivityForResult(intent,REQUESTCODE_PICK);
    }

Step.2 在负责渲染weex页面的activity类里,重写onActivityResult方法

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Toast.makeText(getApplicationContext(),"这个函数有效吗?",Toast.LENGTH_SHORT);
        super.onActivityResult(requestCode, resultCode, data);
        String s = String.valueOf(resultCode);
        if(resultCode == Activity.RESULT_OK && requestCode ==  REQUESTCODE_PICK){
            Uri uri = data.getData();
            Cursor cursor = getContentResolver().query(uri, null, null, null,null);
            if (cursor != null && cursor.moveToFirst()) {
                Path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
                Log.d("Path", Path);
            }
            try {
                final AVFile file = AVFile.withAbsoluteLocalPath("test.png",Path);
                file.saveInBackground(new SaveCallback() {
                    @Override
                    public void done(AVException e) {
                        Log.d(TAG, file.getUrl());
                        WXBridgeManager manager = WXBridgeManager.getInstance();
                        Map<String,String> urlData = new HashMap<String, String>();
                        urlData.put("url",file.getUrl());
                        urlData.put("showimage","true");
                        urlData.put("uploadhint","改变图片");
                        urlData.put("showdelete","true");
                        String jsonStr = JSON.toJSONString(urlData);
                        WXRefreshData refreshData = new WXRefreshData(jsonStr,false);
                        manager.refreshInstance(mInstance.getInstanceId(),refreshData);
                    }
                }, new ProgressCallback() {
                    @Override
                    public void done(Integer integer) {
                        Toast.makeText(getApplicationContext(),"已经上传"+String.valueOf(integer)+"%",Toast.LENGTH_SHORT).show();
                    }
                });
            }catch(Exception e){
                Toast.makeText(getApplicationContext(),"上传图片失败",Toast.LENGTH_SHORT).show();
            }
        }else {
            Toast.makeText(getApplicationContext(),"请选择图片",Toast.LENGTH_SHORT).show();
        }
    }

小提示:我们可以在AVFile的回调函数中创建WXBridgeManager获取当前实例,获取文件上传的进度和最终URL,来更新页面组件状态和信息。
简单几步,就实现了leancloud在weex开发中的使用,感谢leancloud提供的优秀资源,你们是开发者的福音呀。
更多源码可以去github上查看,欢迎拍砖和star。

项目地址----------->[leancloud在weex开发中的使用项目实例][1]


  [1]: https://github.com/iChenLei/weex-android-joke
有任何疑问可以联系我的Email 2470828450@qq.com,交流weex和leancloud开发。

© 著作权归作者所有

共有 人打赏支持
c
粉丝 0
博文 1
码字总数 639
作品 0
广安
推荐一些造福独立开发者的第三方技术

作为可以非常方便做出一个可见产品的客户端工程师,我们或多或少都想过做一款属于自己的产品。在公司里,会有UI设计师、后端工程师、运维工程师等专业角色来解决其他问题,我们只需要专注于客...

halohily
04/09
0
0
Weex 开发小游戏是件很 high 的事儿

前言(废话) 自上一篇 Weex 体验文章《网易严选 App 感受 Weex 开发》发布以来,朋友们的反馈还是不错的,github 也意外得到了400+的 star,18%(有实践精神)的朋友们选择了 fork 下来试一...

木羽zwwill
2017/10/21
0
0
ionic结合免费云服务器leancloud的使用方法及Demo演示

LeadCloud云服务器介绍 LeanCloud 是国内的移动应用一站式云服务。LeanCloud提供了数据存储、实时消息、统计分析以及多种扩展组件,全面涵盖移动应用开发的需求,支持 iOS、Android、Web 等多...

Simon_ITer
2016/10/25
300
0
手游开发如何选择后端服务

【 玩转 LeanCloud 】开发者经验分享: 作为一个通过 LeanCloud 入门后端开发的小白,一年多的开发历程让我收获满满。多个项目也在 LeanCloud 可靠的服务支撑下取得了不错的发展,其中用户量...

eapxuo
2017/11/27
0
0
「大前端」Weex在达人店的一年实践

Weex在达人店的一年实践 本文来自尚妆移动端团队路飞 发表于尚妆github博客,欢迎订阅! 尚妆达人店接入weex也一年的时间了,在此期间,也陆陆续续出了一些文章: 「Android」 详细全面的基于...

尚妆产品技术刊读
2017/12/08
0
0
移动动态化方案在蜂鸟的架构演进(含React Native与Weex对比)

当下,移动动态化已经成为各大公司都回避不了的问题,产品的快速迭代对技术提出了更高的要求,而移动端的动态化方案也是层出不穷:Hypid、结构化 Native View、React Native、Weex,什么样的...

雪夜凋零
2017/08/18
0
0
720 智能硬件与 LeanCloud 云端的默契协作

【 玩转 LeanCloud 】开发者经验分享: 谢子超,720技术负责人,从业十余年,一直负责软件开发工作。 我们的产品是与监控和改善室内空气质量相关的智能硬件,我们使用 LeanCloud 平台已经有 ...

eapxuo
2017/11/24
0
0
Web前端开发与设计

学习 React.js 比你想象的要简单 原文地址:Learning React.js is easier than you think 原文作者:Samer Buna 译文出自:掘金翻译计划 本文永久链接:https://github.com/xitu/gold-miner/...

掘金官方
01/02
0
0
720 智能硬件与 LeanCloud 云端的默契协作

【 玩转 LeanCloud 】开发者经验分享: 作者:谢子超 720技术负责人,从业十余年,一直负责软件开发工作。 我们的产品是与监控和改善室内空气质量相关的智能硬件,我们使用 LeanCloud 平台已...

LeanCloud官方帐号
2017/11/28
0
0
网易严选App感受Weex开发(已完结)

自打出生的那一天起,WEEX就免不了被拿来同React Native“一决高下”的命运。React Native宣称「Learn Once, Write Anywhere」,而WEEX宣称「Write Once, Run Everywhere」。在我看来,并没有...

木羽zwwill
2017/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

17.TCP:传输控制协议

介绍 TCP和UDP使用同一网络层(IP),但TCP提供了面向连接、可靠的传输层服务 TCP传输给IP层的信息单位称为报文段或段 TCP通过如下方式保证可靠性: 应用数据被分割成TCP认为最合适发送的数据...

loda0128
2分钟前
0
0
重装Oracle时出现environment variable "PATH"错误的解决办法

在win7 64位下重新安装oracle 11g,一直报environment variable "PATH"的错误,按说明将path里多余的路径删除,但没办法解决。选择忽略错误继续安装,装一半会报CRC错误,还是安装失败。最好...

良言
8分钟前
0
0
TensorFlow 全连接的mnist

全连接的mnist import tensorflow as tf# 导入 MINST 数据集from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data/", one_ho......

阿豪boy
8分钟前
0
0
JAVA 三种WebService 规范

JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。 1. Jaxws(掌握) JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务...

onedotdot
27分钟前
0
0
将博客搬至CSDN

将博客搬至CSDN

xpbob
28分钟前
1
0
Aidl进程间通信详细介绍

目录介绍 1.问题答疑 2.Aidl相关属性介绍 2.1 AIDL所支持的数据类型 2.2 服务端和客户端 2.3 AIDL的基本概念 3.实际开发中案例操作 3.1 aidl通信业务需求 3.2 操作步骤伪代码 3.3 服务端操作...

潇湘剑雨
46分钟前
0
0
python爬虫日志(3)下载图片

import urlliburl='https://xxx.jpg'#图片地址res=urllib.request.urlopen(url)#此函数用于对url的访问data=res.read() #字节流with open(r'D:\1.jpg',"wb") as code: c...

茫羽行
今天
0
0
vue中$emit的用法

1、父组件可以使用 props 把数据传给子组件。 2、子组件可以使用 $emit 触发父组件的自定义事件。 vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( event, fn );//监听event事件后运...

JamesView
今天
0
0
bash审计系统搭建

step1:使用saltstack工具bash部署>>>>>> # salt -N clienta state.sls audit step2:安装elasticsearch>>>>>> 注意: 1.不能以root用户进行启动,需要创建用户,并对解压的elasticsearch目录赋......

硅谷课堂
今天
0
0
Linux sar性能分析

Linux使用sar进行性能分析 sar简介 sar命令常用格式 sar常用性能数据分析 整体CPU使用统计-u 各个CPU使用统计-P 内存使用情况统计-r 整体IO情况-b 各个IO设备情况-d 网络统计-n sar日志保存-...

易野
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部