zoukankan      html  css  js  c++  java
  • Android 第三方分享中遇到的问题以及解决方案

                  


                                    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!


    第三方登录和分享过程中难免遇到各种纠结的问题,下面将我遇到的分享给大家。

    先说第三方登录

    1、首先要搞清楚后台同事要你传的是code还是token,因为先传code,token值后台同事也可以获得。正常的步骤是先获得code,再拿code去取得token。

    2、新浪和QQ的第三方登录,网上例子大把,但要做奇虎和支付宝的比较困难,还好网上找到一个例子,加部分注释分享给大家:http://download.csdn.net/detail/liuxian13183/7456803

    分享:

    1、如果经常不出分享或者分享失败,要看你在后台写的签名与手机目前签名是否一致。关于如何查看签名,新浪这里有签名工具app_signatures.apk,下载地址详见:https://github.com/sinaweibosdk/weibo_android_sdk

    这里有个小建议:在测试阶段,建议用debug.keystore来签名,然后把签名写到新浪后台,记得包名要一致;正式发包,再用自己项目独立的keystore来打包,然后到后台改下签名。

    2、SSO登录弹不出弹窗;原因要么是上边的,要么是分享和登录混淆,你把SSO登录写到实现IWeiboHandler.Response接口的类中

    3、分享图片的时候,新浪告诉你要填binary对象,ios的简单,直接什么NData转换,这里试了各种byte[]都不成功,最终是使用file对象,也就是把图片保存下来,把file对象传给新浪终于解决这个问题。

    4、某些公司的图片做成背景色是透明的,格式是PNG,导致分享时会被自动加上黑色背景。这个问题经证实后,怎么解决呢?

    首先要按格式保存bitmap值:

    /**

    * @param drawable
    * @return
    */
    public static Bitmap drawable2Bitmap(Drawable drawable) {
    // 取 drawable 的长宽
    int w = drawable.getIntrinsicWidth();
    int h = drawable.getIntrinsicHeight();


    // 取 drawable 的颜色格式
    Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
    : Bitmap.Config.RGB_565;
    // 建立对应 bitmap
    Bitmap bitmap = Bitmap.createBitmap(w, h, config);
    // 建立对应 bitmap 的画布
    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, w, h);
    // 把 drawable 内容画到画布中
    drawable.draw(canvas);
    return bitmap;
    }

    然后给写一张白色背景

    /**
    * 给图片画一张背景
    * @param color
    * @param orginBitmap
    * @return
    */
    public static Bitmap drawBg4Bitmap(int color, Bitmap orginBitmap) {
    Paint paint = new Paint();
    paint.setColor(color);
    Bitmap bitmap = Bitmap.createBitmap(orginBitmap.getWidth(),
    orginBitmap.getHeight(), orginBitmap.getConfig());
    Canvas canvas = new Canvas(bitmap);
    canvas.drawRect(0, 0, orginBitmap.getWidth(), orginBitmap.getHeight(), paint);
    canvas.drawBitmap(orginBitmap, 0, 0, paint);
    return bitmap;
    }

    这样就完美解决透明背景的PNG图片,上传后背景变黑的问题。

    5、微信分享总是不成功,原因:第一可能是微信的KEY不对,第二可能没对微信进行混淆保护,第三可能是图片大于32k(这种根本不会弹出微信分享)

    附:Sina、Alipay、QQ、Qihoo第三方网页登录和部分代码


  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/fengju/p/6174416.html
Copyright © 2011-2022 走看看