Giter Site home page Giter Site logo

fg2q1q3q / umengshare Goto Github PK

View Code? Open in Web Editor NEW
28.0 4.0 13.0 1.63 MB

目前umeng官方提供的集成教程依然是基于Eclipse,集成起来相当繁琐。基于不重复造轮子的思路粗略封装了该库,方便Android Studio用户一步集成和调用,力争踩过的坑尽可能别人不再踩,欢迎拍砖(注:基于友盟分享SDK5.1.0)

License: Apache License 2.0

Java 100.00%

umengshare's Introduction

本例主要是在umeng官方sdk的基础上进行二次封装,以方便接入AndroidStudio和调用

描述

功能参考umeng官方sdk,由于自己项目需要,只集成了新浪、QQ/Qzone、微信/朋友圈 三个平台的登陆和分享,demo中分享采用一键分享,当然你也可以按照官方提供的文档进行自定义分享

一步集成、一步调用即可轻松实现

1.2.0修复新浪微博登陆和分享crash问题

集成

在project 中build.gradle下增加(已有跳过)

allprojects {
        repositories {
            maven { url "https://jitpack.io" }
        }
    }

在app module中build.gradle下增加

dependencies {
        compile 'com.github.fg2q1q3q:UmengShare:1.2.0'
}

使用

只需在要使用的地方初始化ShareUtils,然后调用login/share方法即可,参考demo

su.login(platform, new ILoginCallback() {
        @Override
        public void onSuccess(Map<String, String> data) {
            Toast.makeText(MainActivity.this, "用户信息:" + data.toString(), Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onFaild(String msg) {
            Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel() {
            Toast.makeText(MainActivity.this, "取消登录", Toast.LENGTH_SHORT).show();
        }
    });

分享前请设置分享对象

    ShareModel model = new ShareModel();
    model.setTitle("测试分享标题");
    model.setContent("测试分享内容");
    model.setImageMedia(new UMImage(this, R.mipmap.ic_launcher));
    su.share(model, new IShareCallback() {
        @Override
        public void onSuccess() {
            Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onFaild() {
            Toast.makeText(MainActivity.this, "分享失败", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel() {
            Toast.makeText(MainActivity.this, "取消分享", Toast.LENGTH_SHORT).show();
        }
    });

注意

各平台参数在Application中初始化,wxapi等文件夹需要按照各平台文档放在固定位置

已知问题

  • 由于umeng demo未申请微信登录权限,所以微信登陆会提示参数错误,无视即可

demo下载

详情可参考demo,点此下载或扫描二维码

此处输入图片的描述

混淆

-dontshrink
-dontoptimize
-dontwarn com.google.android.maps.**
-dontwarn android.webkit.WebView
-dontwarn com.umeng.**
-dontwarn com.tencent.weibo.sdk.**
-dontwarn com.facebook.**
-keep enum com.facebook.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public interface com.facebook.**
-keep public interface com.tencent.**
-keep public interface com.umeng.socialize.**
-keep public interface com.umeng.socialize.sensor.**
-keep public interface com.umeng.scrshot.**
-keep public class com.umeng.socialize.* {*;}
-keep public class javax.**
-keep public class android.webkit.**
-keep class com.facebook.**
-keep class com.facebook.** { *; }
-keep class com.umeng.scrshot.**
-keep public class com.tencent.** {*;}
-keep class com.umeng.socialize.sensor.**
-keep class com.umeng.socialize.handler.**
-keep class com.umeng.socialize.handler.*
-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
-keep class im.yixin.sdk.api.YXMessage {*;}
-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
-dontwarn twitter4j.**
-keep class twitter4j.** { *; }
-keep class com.tencent.** {*;}
-dontwarn com.tencent.**
-keep public class com.umeng.soexample.R$*{
    public static final int *;
}
-keep public class com.umeng.soexample.R$*{
    public static final int *;
}
-keep class com.tencent.open.TDialog$*
-keep class com.tencent.open.TDialog$* {*;}
-keep class com.tencent.open.PKDialog
-keep class com.tencent.open.PKDialog {*;}
-keep class com.tencent.open.PKDialog$*
-keep class com.tencent.open.PKDialog$* {*;}
-keep class com.sina.** {*;}
-dontwarn com.sina.**
-keep class  com.alipay.share.sdk.** {
   *;
}
-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}
-keep class com.linkedin.** { *; }
-keepattributes Signature

umengshare's People

Contributors

fg2q1q3q avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

umengshare's Issues

java.lang.RuntimeException: Don't support type

点击分享图片的时候:
java.lang.RuntimeException: Don't support type
at com.umeng.socialize.media.UMImage.a(UMImage.java:126)
at com.umeng.socialize.media.UMImage.(UMImage.java:111)
at com.gp.lostandfound.activity.InfoActivity.share(InfoActivity.java:270)
at com.gp.lostandfound.activity.InfoActivity.onClick(InfoActivity.java:223)
at android.view.View.performClick(View.java:3511)
at android.view.View$PerformClick.run(View.java:14110)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4426)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.