资讯专栏INFORMATION COLUMN

android集成极光社会化分享攻略

remcarpediem / 1748人阅读

摘要:简介本文的主旨是帮助开发者快速使用极光分享,实现分享的基本功能,这样用户就不用集成,微信,新浪微博的接口,只要集成极光分享就可以实现多个平台的分享功能。配置微信回调如不需要分享到微信,可跳过。

1.简介
本文的主旨是帮助开发者快速使用极光分享,实现分享的基本功能,这样用户就不用集成QQ,微信,新浪微博的接口,只要集成极光分享就可以实现多个平台的分享功能。

2. 开发者帐号及appkey
开发者帐号指的是极光和QQ,微信新浪微博的开发者帐号;要是用极光分享的功能,必须要获取极光和对应第三方平台QQ,微信,新浪微博的appkey和appsecret

2.1 极光开发者帐号及appkey

打开极光官网(https://www.jiguang.cn/),点击注册按钮注册开发者帐号;在极光 控制台上创建应用,得到 appkey。详情参考控制台使用指南;如果之前已经使用了 JPush,可以直接延用老的 appkey。

2.2 申请微信appID

登陆微信开发者平台,进入管理中心,点击创建移动应用,根据提示填写应用的基本信息以及平台信息

提交审核,审核通过后即可获得 appID 和 appsecret进行开发。 需要特别注意的是在申请时填写的包名和签名必须与你开发的应用相对应,否则会导致微信平台无法分享。填写的签名通过签名生成工具获得。

2.3 申请新浪微博appkey

登陆新浪微博开放平台,进入微链接 ->移动应用,点击立即接入创建应用 ;根据提示填写应用信息创建新应用

提交审核,审核通过后即可获得 appkey 和 appsecret。 需要特别注意的是在申请时填写的包名和签名必须与你开发的应用相对应。填写的签名通过签名生成工具获取。

2.4 申请QQ的appID

登录腾讯开放平台,应用接入,根据需要选择 Android 应用或者 iOS 应用, 点击创建应用,根据提示填写应用信息,

填写相关应用信息并提交审核,应用未通过审核前只能使用测试账号。

3. 集成分享SDK
把SDK集成到android工程里有两种方法,一是通过jcenter自动集成,二是手动集成; 为了方便这里主要讲的是用jcenter自动集成,如果需要手动集成请参考官方文档。

3.1 使用jcenter集成

使用 jcenter 自动集成的开发者,不需要在项目中添加 jar 和 so,jcenter 会自动完成依赖。主要步骤如下:

在 gradle 配置 jcenter。
配置 JGShareSDK.xml。
配置微信回调(如不需要分享到微信,可跳过)。
配置项目签名。
参考 example 工程或者接口文档使用 JShare SDK。

3.1.1 在 gradle 配置 jcenter

确认 android studio 的 Project 根目录的主 gradle 中配置了 jcenter 支持。(新建 project 默认配置就支持)

buildscript {
    repositories {
        jcenter()
    }
    ......
}

allprojects {
    repositories {
        jcenter()
    }
}

在 module 的 gradle 中添加依赖和 AndroidManifest 的替换变量。

android {
    ......
    defaultConfig {
        applicationId "com.xxx.xxx" //极光控制台创建应用时填写的应用包名.
        ......

        ndk {
            //选择要添加的对应 cpu 类型的.so 库。
            abiFilters "armeabi", "armeabi-v7a", "armeabi-v8a"
            // 还可以添加 "x86", "x86_64", "mips", "mips64"
        }

        manifestPlaceholders = [
            JSHARE_PKGNAME : applicationId,
            JPUSH_APPKEY : "你的 appkey", //极光控制台创建应用得到的 AppKey.
            JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
            TENCENT_APPID: "QQ 开发者应用的 appID",//腾讯开放平台注册应用得到的 appId
        ]
        ......
    }
    ......
}
dependencies {
    ......
    compile "cn.jiguang.sdk:jshare:1.1.0"  // 此处以 JShare 1.1.0 版本为例。
    compile "cn.jiguang.sdk:jshare-qqmodel:1.1.0"  // 此处以 jshare-qqmodel 1.1.0 版本为例。
    compile "cn.jiguang.sdk:jshare-wechatmodel:1.1.0"  // 此处以 jshare-wechatmodel 1.1.0 版本为例。
    compile "cn.jiguang.sdk:jshare-sinamodel:1.1.0"  // 此处以 jshare-sinamodel 1.1.0 版本为例。
    compile "cn.jiguang.sdk:jcore:1.1.3"  // 此处以 JCore 1.1.3版本为例。
    ......
}

注 : 配置完gradle后,需要使用 Android studio 的 sync project with gradle files 功能同步工程设置;如果 android Studio 出现以下提示:

NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.

则在 Project 根目录的 gradle.properties 文件中添加:

android.useDeprecatedNdk=true

3.1.2 配置 JGShareSDK.xml

配置 JGShareSDK.xml 的主要步骤为:

复制或者新建 JGShareSDK.xml 到工程目录的 asset 目录下。 assets文件夹在main的根目录下

把 JGShareSDK.xml 中相关的 AppKey、AppSecret 替换成自己在第三方平台创建的应用得到的信息。

根据需要配置各个平台,不需要的平台可以删除。

JGShareSDK.xml 示例




    

    

    

    


3.1.3 配置微信平台回调

在你的包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,该类继承自WeChatHandleActivity(例如应用程序的包名为 cn.jiguang.share.demo,则新添加的类如下图所示)

注意: 如果复写了 onCreate 方法、onNewIntent 方法,那么必须调用父类方法,否者无法获取分享结果,例如:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
}

并在 manifest 文件里面加上 exported 属性,设置为 true,例如:


3.1.4 配置项目签名

Android Studio 图形界面签名配置

进入 Project Structure,选择您集成 JShare 的项目,具体配置如图:

Android Studio 手动配置签名

在项目的 build.gradle 的 android 内部新增签名配置,例如:

signingConfigs {
        debug {
              storeFile file("jshare.jks") //签名文件路径
              storePassword "sdkteam"
              keyAlias "jshare"
              keyPassword "sdkteam" //签名密码
        }
        release {
             storeFile file("jshare.jks") //签名文件路径
             storePassword "sdkteam"
             keyAlias "jshare"
             keyPassword "sdkteam" //签名密码
        }
    }

然后在项目的 build.gradle的buildTypes 使用签名配置,例如:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-project.txt"
            signingConfig signingConfigs.debug
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }

4. 测试确认集成是否成功

确认所需要的文件已经添加进工程

确认 Androidmanifest.xml 已经正确配置

确认 JGShareSDK.xml 已经正确配置

根据如下日志确定配置了什么平台,当输出如下日志表示各个平台已经集成成功

[PlatformManager] platform Wechat has configured
[PlatformManager] platform SinaWeibo has configured
[PlatformManager] platform QQ has configured

5. 编写分享代码
在项目的application中调用init接口初始化 sdk

public class Myapplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        JShareInterface.init(this);
    }
}

在MainActivity中编写代码

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn_share).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //创建分享参数
                ShareParams shareParams = new ShareParams();
                //设置分享的数据类型
                shareParams.setShareType(Platform.SHARE_TEXT);
                shareParams.setText("分享的文本!!");
                shareParams.setTitle("分享的标题!!");
                //调用分享接口share ,分享到QQ平台。
                JShareInterface.share(QQ.Name, shareParams, new PlatActionListener() {
                    @Override
                    public void onComplete(Platform platform, int i, HashMap hashMap) {
                        Log.d(TAG, "onComplete");
                    }

                    @Override
                    public void onError(Platform platform, int i, int i1, Throwable throwable) {
                        Log.d(TAG, "onError");

                    }

                    @Override
                    public void onCancel(Platform platform, int i) {
                        Log.d(TAG, "onCancel");

                    }
                });
            }
        });

    }
}

运行成功后,点击share按钮,即可分享文本到QQ平台。

相关参考文档

JShare Android SDK 集成指南
JShare Android API 接口文档

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/13750.html

相关文章

  • Android攻略

    摘要:但是,还有一需求点击断句我们需要判断用户的点击,定位到所点击的整句话,然后再将整句内容带来了哪些新东西今年的上谷歌发布了新版本的,但是我们并没有从中得到多少信息,只有一篇非常简陋的博客。 Android自定义View播放Gif动画 GIF是一种很常见的动态图片格式,在Android中它的使用场景非常多,大到启动页动画、小到一个Loading展示,都可以用GIF动画来完成,使用也很方便,...

    zhisheng 评论0 收藏0
  • 本机号码认证黑科技:极光(JG)开发者服务推出“极光认证”新产品

    摘要:近日,中国领先的大数据服务商极光推出全新产品极光认证。极光认证的诸多优势以及试用企业的好评反馈,充分证明了极光认证这一全新认证方式的市场前景。在注册登陆及二次验证等场景,极光认证或将成为新一代主流认证方式。 近日,中国领先的大数据服务商极光(JG)推出全新产品——极光认证JVerification。极光认证是极光针对APP用户注册登陆,二次安全验证等身份验证场景打造的一款本机号码认证S...

    HtmlCssJs 评论0 收藏0
  • Unity 下集成第三方原生 SDK,以极光厂商通道为例

    摘要:华为通道为例获取到对应的厂商通道文档,打开华为集成指南可以看到大致步骤现在我们要集成厂商通道怎么做第一种导出项目的集成方式,直接对应上面步骤配置即可。运行应用并查看初始化,系统要求或往上,集成成功会在中打印华为信息。 Unity中集成三方SDK有两种方式: Unity 项目开发中时常有集成 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能。而第三方 SDK 的集成...

    levius 评论0 收藏0
  • Android-IM从零开始开发一个即时通讯项目

    摘要:关于聊天室项目聊天室项目,也被称为即时通讯。可以满足一个即时通讯类的绝大部分功能。极光官方提供的有即时通讯,包括等都实现了,只需要简单配置就可以用。其中用的最多的是极光,不仅仅是依赖于极光即时通讯服务,后期还会引入统计分享等相关的。 关于聊天室项目 聊天室项目,也被称为即时通讯(IM)。 其原理是服务器是一直在启动状态的线程,不断的从客户端(App)获取消息,收到消息后,进行类型和发送...

    CarlBenjamin 评论0 收藏0
  • 作为移动开发者,你应该了解Baas(后端即服务)

    摘要:作为开发者,了解新技术,新的工具是必不可少的,有时候发现一个好的开发工具,使用起来非常顺手,效率也提高了,然而如果不了解新的技术,不了解这个行业的发展趋势,那样的后果是不堪回首的,反正,与时俱变是没有错啦,所以今天就来说说每个移动开发者都 showImg(http://cdn.pingwest.com/wp-content/uploads/2014/12/BaaS.jpg); 作为开...

    alexnevsky 评论0 收藏0

发表评论

0条评论

remcarpediem

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<