二维码的扫描与生成(含动态权限)

  • 首页
  • 博客
  • 学院
  • 下载
  • GitChat
  • TinyMind
  • 论坛
  • 问答
  • 商城
  • VIP
  • 活动
  • 招聘
  • ITeye
  • CSTO
cjm2484836553的博客

RSS订阅
Android集成Zxing实现二维码的扫描与生成(含动态权限)

不诗意的女程序猿不是好厨师~ 

【转载请注明出处:From李诗雨---http://blog.csdn.net/cjm2484836553/article/details/72774534】

目前在做一个和机顶盒相关的app,项目中需要使用二维码扫描来绑定机顶盒。
由于工期的原因,也没时间细细研究,只是粗略集成了一下。
在此,又重新写了一个demo,以示记录。


源码demo:不含动态权限的源码

                   含动态权限的源码


Demo所包含的功能说明:
①实现二维码的扫描

②实现二维码的生成

③使用RxPermissions添加动态权限

效果图展示:

          


话不多说,下面就让我们按照如下步骤来一步一步集成Zxing。


第一步:将core-3.3.0.jar包考到libs目录下

点击下载jar包:core-3.3.0.jar

                 


第二步:将整个zxing包考过来

将整个zxing包都拷贝过来,然后暂不做其他处理

                        


第三步:拷贝相关资源文件

将res下的相关的资源文件拷贝过来
这里需要是在自己原有的文件内容的基础上进行叠加,而不是简单替换。
具体点来说就是:
①drawble,drawable-hdpi,drawabl-xhdpi的全部内容都拷贝过来 layout中拷贝2个布局过来



②将raw文件夹都拷过去

                                                           


③values下的文件拷贝要小心一点!
比如:对于colors.xml文件,我们需要把其中Zxing相关的代码考到自己的colors.xml中去, 而不是简单的替换,其他文件也类似!

                                                              

                                     


④将以下的东西拷贝到res下

                                 


第四步:拷贝manifest.xml文件中的相关权限和Activity

                    

 


第五步先clean project,然后回过头来修改zxing包下报红的类

这无非是包的问题,删了,重新导包即可


第六步:记得将capture.xml下的ViewfinderView的全类名修改为正确的



第七步:先不加动态权限测试一下集成的正确性

先将build.gradle文件下的targetSdkVersion 改为22,
我们先不加动态权限来初步验证一下集成的正确性

MainActivity的布局:

[html]  view plain  copy
  1. xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:id="@+id/activity_main"  
  5.     android:orientation="vertical"  
  6.     android:layout_width="match_parent"  
  7.     android:layout_height="match_parent"  
  8.     tools:context="com.lishiyu.lsy_zxing_rxpermissions_demo.MainActivity">  
  9.   
  10.       
  11.     <Button  
  12.         android:onClick="canningMethod"  
  13.         android:textSize="17sp"  
  14.         android:text="点击扫一扫"  
  15.         android:id="@+id/btn_scanning"  
  16.         android:layout_width="match_parent"  
  17.         android:layout_height="38dp"  
  18.          />  
  19.       
  20.     <TextView  
  21.         android:id="@+id/tv_scanning_result"  
  22.         android:gravity="center"  
  23.         android:textSize="17sp"  
  24.         android:text="扫描结果:"  
  25.         android:layout_width="match_parent"  
  26.         android:layout_height="38dp" />  
  27.   
  28.   
  29.       
  30.     <EditText  
  31.         android:textColorHint="#33000000"  
  32.         android:textColor="#99000000"  
  33.         android:hint="请输入你要生成的二维码内容"  
  34.         android:layout_marginTop="30dp"  
  35.         android:layout_width="match_parent"  
  36.         android:layout_height="38dp" />  
  37.   
  38.     <Button  
  39.         android:onClick="makeErweimaMethod"  
  40.         android:textSize="17sp"  
  41.         android:text="点击生成二维码"  
  42.         android:id="@+id/btn_make_erweima"  
  43.         android:layout_width="match_parent"  
  44.         android:layout_height="38dp"  
  45.         />  
  46.   
  47.     <ImageView  
  48.         android:layout_gravity="center_horizontal"  
  49.         android:id="@+id/result_img"  
  50.         android:layout_width="200dp"  
  51.         android:layout_height="200dp" />  
  52.   
  53.   
  54. LinearLayout>  


①扫描二维码并返回扫描结果

[java]  view plain  copy
  1. //点击跳转到扫描界面  
  2.    public void canningMethod(View v) {  
  3.        Intent intent = new Intent(MainActivity.this,  
  4.                CaptureActivity.class);  
  5.        startActivityForResult(intent, SCANNING_CODE);  
  6.   
  7.    }  
  8.   
  9.   
  10.    @Override  
  11.    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  12.   
  13.        super.onActivityResult(requestCode, resultCode, data);  
  14.        // 扫描二维码/条码回传  
  15.        if (requestCode == SCANNING_CODE && resultCode == RESULT_OK) {  
  16.            if (data != null) {  
  17.   
  18.                String content = data.getStringExtra(DECODED_CONTENT_KEY);  
  19.                Bitmap bitmap = data.getParcelableExtra(DECODED_BITMAP_KEY);  
  20.   
  21.                tv_scanning_result.setText("扫描结果: " + content);  
  22.   
  23.            }  
  24.        }  
  25.    }  

②生成制定内容和logo的二维码

[java]  view plain  copy
  1. //点击生成带图片的二维码  
  2.    public void makeErweimaMethod(View v) {  
  3.        String aimContent=et_erweima_content.getText().toString();  
  4.        Create2QR2(aimContent,result_img);  
  5.    }  
  6.      
  7.    //生成二维码的方法  
  8.    private void Create2QR2(String urls,ImageView imageView) {  
  9.        String uri = urls;  
  10.        int mScreenWidth = 0;  
  11.        Bitmap bitmap;  
  12.        try {  
  13.            DisplayMetrics dm = new DisplayMetrics();  
  14.            getWindowManager().getDefaultDisplay().getMetrics(dm);  
  15.            mScreenWidth = dm.widthPixels;  
  16.   
  17.            bitmap = BitmapUtil.createQRImage(uri, mScreenWidth,  
  18.                    BitmapFactory.decodeResource(getResources(), R.mipmap.me));//自己写的方法  
  19.   
  20.            if (bitmap != null) {  
  21.                imageView.setImageBitmap(bitmap);  
  22.            }  
  23.        } catch (Exception e) {  
  24.            e.printStackTrace();  
  25.        }  
  26.   
  27.    }  

涉及到的一个工具类:

[java]  view plain  copy
  1. public class BitmapUtil {  
  2.     //生成二维码图片(不带图片)  
  3.     public static Bitmap createQRCode(String url, int widthAndHeight)  
  4.             throws WriterException {  
  5.         Hashtable hints = new Hashtable();  
  6.         hints.put(EncodeHintType.CHARACTER_SET, "utf-8");  
  7.         BitMatrix matrix = new MultiFormatWriter().encode("lvu",  
  8.                 BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight);  
  9.   
  10.         int width = matrix.getWidth();  
  11.         int height = matrix.getHeight();  
  12.         int[] pixels = new int[width * height];  
  13.         //画黑点  
  14.         for (int y = 0; y < height; y++) {  
  15.             for (int x = 0; x < width; x++) {  
  16.                 if (matrix.get(x, y)) {  
  17.                     pixels[y * width + x] = BLACK; //0xff000000  
  18.                 }  
  19.             }  
  20.         }  
  21.         Bitmap bitmap = Bitmap.createBitmap(width, height,  
  22.                 Bitmap.Config.ARGB_8888);  
  23.         bitmap.setPixels(pixels, 0, width, 00, width, height);  
  24.         return bitmap;  
  25.     }  
  26.   
  27.   
  28.     //带图片的二维码  
  29.     public static Bitmap createQRImage(String content, int heightPix, Bitmap logoBm) {  
  30.         try {  
  31.             //配置参数  
  32.             Map hints = new HashMap<>();  
  33.             hints.put(EncodeHintType.CHARACTER_SET, "utf-8");  
  34.             //容错级别  
  35.             hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);  
  36.             // 图像数据转换,使用了矩阵转换  
  37.             BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, heightPix, heightPix, hints);  
  38.             int[] pixels = new int[heightPix * heightPix];  
  39.             // 下面这里按照二维码的算法,逐个生成二维码的图片,  
  40.             // 两个for循环是图片横列扫描的结果  
  41.             for (int y = 0; y < heightPix; y++) {  
  42.                 for (int x = 0; x < heightPix; x++) {  
  43.                     if (bitMatrix.get(x, y)) {  
  44.                         pixels[y * heightPix + x] = 0xff000000;  
  45.                     } else {  
  46.                         pixels[y * heightPix + x] = 0xffffffff;  
  47.                     }  
  48.                 }  
  49.             }  
  50.   
  51.             // 生成二维码图片的格式,使用ARGB_8888  
  52.             Bitmap bitmap = Bitmap.createBitmap(heightPix, heightPix, Bitmap.Config.ARGB_8888);  
  53.             bitmap.setPixels(pixels, 0, heightPix, 00, heightPix, heightPix);  
  54.   
  55.             if (logoBm != null) {  
  56.                 bitmap = addLogo(bitmap, logoBm);  
  57.             }  
  58.   
  59.             //必须使用compress方法将bitmap保存到文件中再进行读取。直接返回的bitmap是没有任何压缩的,内存消耗巨大!  
  60.             return bitmap;  
  61.         } catch (WriterException e) {  
  62.             e.printStackTrace();  
  63.         }  
  64.   
  65.         return null;  
  66.     }  
  67.   
  68.     /** 
  69.      * 在二维码中间添加Logo图案 
  70.      */  
  71.     private static Bitmap addLogo(Bitmap src, Bitmap logo) {  
  72.         if (src == null) {  
  73.             return null;  
  74.         }  
  75.   
  76.         if (logo == null) {  
  77.             return src;  
  78.         }  
  79.   
  80.         //获取图片的宽高  
  81.         int srcWidth = src.getWidth();  
  82.         int srcHeight = src.getHeight();  
  83.         int logoWidth = logo.getWidth();  
  84.         int logoHeight = logo.getHeight();  
  85.   
  86.         if (srcWidth == 0 || srcHeight == 0) {  
  87.             return null;  
  88.         }  
  89.   
  90.         if (logoWidth == 0 || logoHeight == 0) {  
  91.             return src;  
  92.         }  
  93.   
  94.         //logo大小为二维码整体大小的1/5  
  95.         float scaleFactor = srcWidth * 1.0f / 5 / logoWidth;  
  96.         Bitmap bitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888);  
  97.         try {  
  98.             Canvas canvas = new Canvas(bitmap);  
  99.             canvas.drawBitmap(src, 00null);  
  100.             canvas.scale(scaleFactor, scaleFactor, srcWidth / 2, srcHeight / 2);  
  101.             canvas.drawBitmap(logo, (srcWidth - logoWidth) / 2, (srcHeight - logoHeight) / 2null);  
  102.   
  103.             canvas.save(Canvas.ALL_SAVE_FLAG);  
  104.             canvas.restore();  
  105.         } catch (Exception e) {  
  106.             bitmap = null;  
  107.             e.getStackTrace();  
  108.         }  
  109.   
  110.         return bitmap;  
  111.     }  
  112.   
  113.   
  114. }  

好了,到这里简单的①二维码扫描和②生成二维码功能就实现了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面让我来使用RxPermissions增加动态权限  :
RxPermissions的github地址:https://github.com/tbruyelle/RxPermissions

前提:
现在将build.gradle文件下的targetSdkVersion 改为23,
然后在manifest.xml中添加相关权限(这里我们只涉及到 相机 权限):

接着RxPermissions就要正式登场了:
第一步:在build.gradle中做如下配置

即:


第二步:使用


第①步先创建一个RxPermissions实例:




第②步代码中正式使用:
在对应的点击事件的方法中添加动态权限的相关代码:
[java]  view plain  copy
  1. rxPermissions  
  2.                .request(Manifest.permission.CAMERA)  
  3.                .subscribe(granted -> {  
  4.                    if (granted) { // Always true pre-M  
  5.                        //如果已经授权就直接跳转到二维码扫面界面  
  6.                        Intent intent = new Intent(MainActivity.this,  
  7.                                CaptureActivity.class);  
  8.                        startActivityForResult(intent, SCANNING_CODE);  
  9.   
  10.                        Toast.makeText(this"扫一扫", Toast.LENGTH_SHORT).show();  
  11.                    } else { // Oups permission denied  
  12.                        Toast.makeText(this"相机权限被拒绝,无法扫描二维码", Toast.LENGTH_SHORT).show();  
  13.                        return;  
  14.                    }  
  15.                });  

这是你会发现报错了:Lambda expermission are not supported at this language level



这是由于lambda表达式的使用出了问题
解决办法 
在build.gradle文件中添加如下代码( 注意必须是1.8以上!)




同步后发现就不再报错了:



(注:卸载后再重新运行)
运行后,点击“扫一扫”会出现下图的效果:



好了,这样加动态权限的扫描二维码和生成带图标的二维码也完成了~

源码demo:不含动态权限的源码

                   含动态权限的源码



积累点滴,做好自己,晚安~











个人分类:  第三方框架-库等
  • wanghao0622
    qq2360122978 2017-12-21 18:03:05 #9楼
    大神 资源文件呢?
  • qq_37414190
    qq_37414190 2017-09-08 16:39:22 #8楼
    开始想在github上找个精简的zxing,找了一些人气比较高的,几行代码集成,试了半天,发现BUG严重。 你这个应该是最麻烦的集成二维码扫描,但我觉得是最实用的!应该值得多一点赞! 顺便提一下,demo里的例子不能直接运行的,用来复制文件。
  • Mingyueyixi
    Mingyueyixi 2017-09-08 09:50:09 #7楼
    这一段代码,只能是QR二维码用,其他二维码,条形码,可能崩溃: // 图像数据转换,使用了矩阵转换 BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, heightPix, heightPix, hints); int[] pixels = new int[heightPix * heightPix]; // 下面这里按照二维码的算法,逐个生成二维码的图片, // 两个for循环是图片横列扫描的结果 for (int y = 0; y < heightPix; y++) { for (int x = 0; x < heightPix; x++) { if (bitMatrix.get(x, y)) { pixels[y * heightPix + x] = 0xff000000; } else { pixels[y * heightPix + x] = 0xffffffff; } } }
  • cuofucsdn
    嗟夫 2017-08-03 17:43:35 #6楼
    那个RxPermissions是要导入依赖吗~~安卓新手
  • qq_38687915
    微白1 2017-07-21 15:33:22 #5楼
    正好自己在练二维码, 就用你的成功了 ,其他的都没成功
    查看回复(1)
查看 12 条热评

超简单集成Android Zxing实现扫一扫二维码

2017-10-20更新 最新版本的请看http://blog.csdn.net/yuzhiqiang_1993/article/details/78292004,优化了扫描速度,修复了一些bug,...

yuzhiqiang_1993 yuzhiqiang_1993

2016-10-13 10:54:35

阅读数:25093

Android中 使用 zxing 集成扫描二维码的功能

第一步: 导入依赖:compile project(':libzxing') compile project(path: ':libzxing')第二步:  导入module依赖包:---------...

qq_40116418 qq_40116418

2018-02-27 14:44:29

阅读数:210

Android快速集成Zxing扫码库 - CSDN博客

今天为大家介绍的是我的github开源项目ZxingSimplify,一个精简的安卓Zxing扫码库。有了它你将分分钟集成扫码(包括二维码、条形码等)功能。一.扫码界面 二.使用 1...

2018-5-22

Android自由行之走进zxing,轻松实现二维码扫描 - CSDN博客

Android实现二维码扫描功能(二)-ZXing个性化与近距离识别优化 简介上一篇Android实现二维码扫描功能(一)-ZXing插件接入介绍了ZXing框架接入方法,已经可以初步集成扫码功...

2018-5-22

您有一张免费的北京车展门票等待领取美好购车节 · 顶新

Android二维码扫描模块可简单集成(基于ZXIng实现

Android二维码扫描模块可简单集成(基于ZXing实现)

M075097 M075097

2017-11-14 20:57:42

阅读数:1224

使用ZXing实现二维码扫描 - CSDN博客

广泛,对于二维码二维码的生成与解析,有多种途径,这里我选择用google老大的ZXing。...(); //在Activity中执行Fragment的初始化操作 //执行扫面Fragment的初始化操作...

2018-5-18

Google zxing实现二维码扫描完美解决方案 - CSDN博客

1.项目中集成zxing在项目中集成zxing,网上有很多的教程也说的比较详细了,zxing中的内容很多,涵盖了很多的扫码功能(不仅仅局限于扫描二维码...)。步骤很简单,只...

2018-5-29

Android zxing 二维码扫描生成方法(简单版)

前言二维码大家都见识过,这里就不废话了,直接来干货。步骤 导入依赖 compile 'com.google.zxing:core:3.2.1' //zxing核心依赖 com...

D_Russell D_Russell

2017-07-31 14:05:15

阅读数:7267

Android studio中集成Zxing扫码的Demo

2017年03月16日 26.56MB 下载

自定义ZXing扫码框样式 - CSDN博客

新接手的项目里面使用了ZXing扫码框架,使用的库为zxing-android-embedded. 接到需求要求修改扫码框样式,如图: 主要有3个问题: 1.修改扫码框之外的样式. 2....

2018-4-19

关于zxing扫码界面的优化 - CSDN博客

关于zxing扫码界面的优化2017年04月08日 23:22:54 阅读数:644 关于zxing就不多介绍了,功能强大,高度可订制,但其原本的界面却很丑,下面将对其进行一些美化1...

2018-5-28

androidZXing二维码扫描集成

最近项目中需求是类似微信扫描功能,而我的项目是通过扫描所乘班车跟车二维码来进行快捷扫描购票和验票功能;      1.准备工作          去github上下载最新的ZXing压缩包,路径htt...

zheglei zheglei

2017-08-31 22:04:23

阅读数:518

在北京,错过了低价买房,别再错过在职读研!尚德教育 · 顶新

Zxing扫码流程梳理 - CSDN博客

最近在优化扫码功能,对Zxing提供的demo做了一个梳理... 最近在优化扫码功能,对Zxing提供的demo做了一个梳理,下面时序图看不清楚的可以下载下来看,本来想精简下的,...

2018-4-16

zxing实现二维码扫描完美解决方案 - CSDN博客

在项目中集成zxing,网上有很多的教程也说的比较详细了,zxing中的内容很多,涵盖了很多的扫码功能(不仅仅局限于扫描二维码...)。步骤很简单,只需要我们将几个核心的...

2018-5-3

第三方ZXingzxing-android-embedded使用及自定义

一、关于ZXing现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的APP变得非常普遍,一个安卓APP需要扫码功能就要用到zxing了,zxing是谷歌开源的让开发者更方便使用摄像头...

u010618194 u010618194

2017-09-08 09:55:06

阅读数:4296

AndroidStudio集成Zxing实现扫一扫demo

2016年10月13日 27.27MB 下载

Android 二维码的扫码功能实现(一) - CSDN博客

实现二维码的扫码功能,在网上搜了一下,能够发现大部分都提到说使用Google开源的Zxing,现在基本上都是使用的Zxing来做的。所以我们的扫码功能也是基于Zxing来实现。(...

2018-4-15

undefined

Android中第三方SDK集成ZXing二维码扫一扫集成指南

2017年04月13日 27.61MB 下载

Android Studio中集成Zxing

1.1、集成方法: 在项目的build.gradle中添加以下依赖: [java] view plain copy compile 'com.jo...

as425017946 as425017946

2017-12-08 16:57:10

阅读数:207

ZxingAndroid移植篇

目前二维码扫描功能在app上已经非常成熟了,而zxing项目也是目前可以说是最流行的二维码扫描方面的开源项目了,今天介绍下,怎么把zxing移植到我们android工程项目,最近做这方面的工作,发现网...

chenzujie chenzujie

2017-02-08 17:43:33

阅读数:3401

Android实现二维码扫描功能-ZXing插件接入

2017年07月30日 2.12MB 下载

android zxing项目应用[写到一半未完成]

生成条形码二维码,以及扫描二维码条形码是APP中比较常见的功能,zxing,从很久之前我参加工作的时候就知道这个开源项目,之前的jar包都很老,在csdn库里面去下载,尽然搜索到2015年的,已经哭瞎...

ONLYMETAGAIN ONLYMETAGAIN

2018-02-23 11:16:08

阅读数:107

Android实战——Zxing实现二维码扫描

教你用Zxing实现二维码扫描 前言: 本篇文章从初学者的角度出发,从一个不知道对二维码扫描怎么下手的工作者,需要一个简单的扫描功能的话,可以阅读该篇文章。作为Google开源框架Zxing,里面...

qq_30379689 qq_30379689

2016-09-02 10:17:58

阅读数:24757

Android项目如何集成ZXing二维码扫描功能

最近的项目有二维码扫描跳转网页的需求,就是利用手机摄像头,扫描并解析二维码内容,内容由生成二维码的时候定义,我项目现在的需求就是一个包含了网址的二维码,网上有生成二维码的工具,也可以自己开发一个。 搜...

PigLoveSula PigLoveSula

2013-08-27 11:15:59

阅读数:35763

Android实现二维码扫描功能(一)-ZXing插件接入

简介关于Android扫描二维码的功能实现,网上有很多相关资料。在对比之后,选用了前辈了修改过的zxing直接接入到项目中,特制作此demo,介绍整个过程。效果预览先上图展示效果(模拟器没有摄像头,录...

ahuyangdong ahuyangdong

2017-07-30 20:34:08

阅读数:10111

Android 使用Zxing实现二维码生成扫描

在项目中要使用到二维码的相关内容,百度(原谅我还在用)之后得知一半都是使用Google的开源库 Zxing,但是网上多半的使用教程都是比较早的,这里给出我总结的一些基础代码和使用规则:首先要一定要先去...

qq_28057541 qq_28057541

2016-07-26 14:37:11

阅读数:39678

zxing二维码扫描功能

经常要用到二维码扫描功能 现给出示例代码 import com.google.zxing.WriterException; import com.zxing.activity.CaptureA...

gundumw100 gundumw100

2017-04-10 19:05:08

阅读数:311

Andorid: Zxing.Demo二维码扫描框架遇到的坑

Andorid: Zxing.Demo二维码扫描框架遇到的坑使用Zxing.Demo二维码扫描打开就闪退,报threadid=1: thread exiting with uncaught excep...

sange77 sange77

2016-05-04 14:06:22

阅读数:1323

Android 基于google Zxing实现二维码、条形码扫描

首先我们看下项目结构        (1) 首先我们从扫描二维码Activity MipcaActivityCapture.Java 类入手该类主要是调用相机预览拍照内容,处理扫描后的结果,扫码成...

u013749540 u013749540

2017-03-25 11:06:11

阅读数:2062

个人资料

关注
原创
59
粉丝
196
喜欢
77
评论
88
等级:
访问:
12万+
积分:
1856
排名:
2万+
勋章:

最新文章

  • 译文:Android,Okhttp and WebSockets
  • 最通俗易懂的使用OkHttp进行WebSocket连接教程:上来直接撸代码
  • 找不到so文件java.lang.UnsatisfiedLinkError: dalvik.sys.... couldn't find "libijkffmpeg.so"
  • 密码是6-16位字母加数字的正则表达式和验证手机号码的正则表达式
  • 节操播放器问题的较完整总结(上)

博主专栏

  • 二维码的扫描与生成(含动态权限)_第1张图片

    自定义View的多彩世界

    阅读量: 4112 4 篇
  • 二维码的扫描与生成(含动态权限)_第2张图片

    论一个Android App的诞生

    阅读量: 0 0 篇

个人分类

  • 小常识11篇
  • 实用工具类2篇
  • AS配置等操作3篇
  • 自定义控件9篇
  • Android基础5篇
  • 项目必备10篇
  • 工具2篇
  • 第三方框架-库等5篇
  • 趣多多1篇
  • bug收纳盒9篇
  • websocket1篇
  • 如诗如雨,闲聊又何妨1篇
  • websoket1篇

展开

归档

  • 2018年1月1篇
  • 2017年12月3篇
  • 2017年11月2篇
  • 2017年10月2篇
  • 2017年9月5篇
  • 2017年8月1篇
  • 2017年7月1篇
  • 2017年5月5篇
  • 2017年4月8篇
  • 2017年1月3篇
  • 2016年12月9篇
  • 2016年11月21篇

展开

  • 8


  • 目录

  • 收藏

  • 评论

  • 微信

  • 微博

  • QQ
关闭

你可能感兴趣的:(第三方框架-库等)