查看: 55761|回复: 24
打印 上一主题 下一主题

[Android常见问题] 微信分享的集成

[复制链接]

Rank: 5Rank: 5

主题:
帖子:
积分:
0

[Android常见问题] 微信分享的集成

[复制链接]
楼主
55761 24 | 发表于 2017-9-13 20:06:00 |倒序浏览 |阅读模式 | |
本帖最后由 wolf 于 2017-9-14 09:25 编辑

申请微信AppId

         具体流程参考http://bbs.mob.com/thread-95-1-4.html里面的教程,
    注意:链接中说道的签名一定要注意,必须保证微信后台配置的包名和签名与你的app的包名和签名一致才可以哦;

二集成ShareSDK

1、  官网后台创建应用


添加应用

输入应用名字,点击保存即可

添加ShareSDK产品,点击下图的位置,在弹出的选择框点击确定添加

然后选择概况可以看到appkey的appsecret,记好备用

2、  下载ShareSDK

首先进入官网http://www.mob.com/选择SDK下载里面的ShareSDKfor Android

进入下载页面点击SDK下载,在弹出的选择框页面选择微信,点击下载SDK

3、  生成项目文件


解压缩刚刚下载好的压缩包,进入 ShareSDKfor Android目录里面双击QuickIntegrater.jar

输入包名选择确定

会生成一个与上一步里面的项目名称一致的也就是名为Sample的目录,进入这个目录可以看到这些目录,留待后用



4、  创建项目
然后我们新建一个AndroidStudio项目,注意包名要和刚刚输入的包名一致


然后一致Next直到finish就可以。

5、  集成SDK的内容

然后我们进入刚刚创建好的项目,切换到Project下,开始将Sample目录里面的东西拷贝进项目
首先是assets目录,这个目录要拷贝的位置在app---src---main目录下面

然后拷贝libs里面的jar包进入libs目录

然后分别复制res和src里面的内容进项目
res的内容与原有的文件夹合并一下,如果有文件名称冲突,合并一下内容即可
这几个文件夹都不能少

注意src目录里面的cn.sharesdk.demo目录一定要完整的复制到Java目录下面,否则会出现导包错误的情况

这时我们可以看到一个WXEntryActivity的类,这个类的位置一定要处于自己的包名,也就是build.gradle里面的ApplicationId对应的名称目录下面的wxapi目录下面,如果不在这个路径,那么要自己移动到对应的位置,否则会没有回调

相应的也要配置AndroidManifest.xml里面WXEntryActivity的路径与Java路径对应

6、  配置ManiFest文件

下面还需要配置下Manifest文件;可以直接复制进入自己的Manifest文件
首先是添加权限:
1.   
2.   
3.   
4.   
5.   
6.   
7.   
8.   
9.   
10.  
11.   
12.   
添加ShareSDK必要的activity,并且在此配置ShareSDKappkeyappsecret
2.   <>
3.         android:name="com.mob.MobApplication">
4.   
5.         
6.   
7.         
8.   <>
9.       android:name="com.mob.tools.MobUIShell"
10.       android:theme="@android:style/Theme.Translucent.NoTitleBar"
11.      android:configChanges="keyboardHidden|orientation|screenSize"
12.      android:windowSoftInputMode="stateHidden|adjustResize">
13.  
14.  
15.  
16.  
17.  

上面的除了说明的可以不写之外,其他必须配置不能少
1.   <>
2.        android:name="包名.wxapi.WXEntryActivity"
3.       android:theme="@android:style/Theme.Translucent.NoTitleBar"
4.       android:configChanges="keyboardHidden|orientation|screenSize"
5.       android:exported="true"
6.        android:screenOrientation="portrait"/>
7.   
下面是我的配置截图

7、  配置微信的AppId和AppSecret

接下来我们配置从微信开放平台获得的AppIdAppSecret
进入刚刚拷贝进去的assets里面的ShareSDK.xml文件里面,找到微信的配置,其他的平台的这里忽略不管,替换Wechat(好友)WechatMoments(朋友圈)以及WechatFavorite(收藏)

以微信好友的配置做介绍,首先替换AppIdAppSecret为第一步里面获取到的值,然后然后修改BypassApprovalfalse,如果设置为true代表绕过审核,不需要去申请appidsecret,但是只能分享图片和文字,usernamepath是分享小程序用的的,userName是小程序的原始IDpath是小程序内的页面路径;而且必须保证微信开放平台与微信公众/小程序绑定才可以分享;不需要的不用管
所有的配置就完成了

8、  分享的代码

然后我们开始写分享的代码,分为两种,一种是OneKeyshare一键分享,一种是指定平台分享,这里我们我们以分享网页和分享图片为例进行说明
如上所示,onekeyshare不用设置sharetype,但是指定平台分享一定要设置。也不用指定是哪个平台,如果是朋友圈,那么指定分享需要将Wechat.NAME修改为WechatMoments.NAME。微信还有其他的分享方式,比如分享文本,音乐,本地视频之类的,都大同小异,只是参数设置不同而已,具体的参数设置参考文档http://wiki.mob.com/%E4%B8%8D%E5%90%8C%E5%B9%B3%E5%8F%B0%E5%88%86%E4%BA%AB%E5%86%85%E5%AE%B9%E7%9A%84%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E/里面微信的说明
接下来我们运行代码,这里一定要注意,不绕过审核,也就是ShareSDK.xml里面的微信的BypassApproval设置为false,要使用和微信开放平台里面配置的签名对应的keystore进行打包,否则不能调起微信客户端。如果绕过审核则没有限制。

9、  回调代码

上面的代码运行之后就可以分享了,然后我们处理一下回调逻辑

这里要注意如果绕过审核不会正确回调。
对于微信好友必须在分享完成之后的弹出框选择返回APP,才能获取成功回调,否则点击留在微信则不能。
对于微信朋友圈如果分享成功则会直接回调APP,执行到成功的回调


Rank: 1

主题:
帖子:
积分:
0
推荐
发表于 2017-10-13 17:02:45 |
分享我写的指定平台分享,但是点击按钮提示空指针,异常提示在Platform platform = ShareSDK.getPlatform(WechatMoments.NAME);这一行,这是什么原因导致的呢?

Rank: 5Rank: 5

主题:
帖子:
积分:
0
板凳
 楼主| 发表于 2017-10-13 17:30:27 |
没有初始化。使用MobSDK.init(Context context,"MobAppkey","MobAppsecret");初始化一下

Rank: 1

主题:
帖子:
积分:
0
地板
发表于 2017-10-20 16:30:12 |
在微信的开发文档中这样的说明:
2.下载SDK及API文档
Android Studio环境下:
在build.gradle文件中,添加如下依赖即可:
dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
}

dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
}
(其中,前者包含统计功能)


请问我怎么才能切换到带mta的sdk

Rank: 5Rank: 5

主题:
帖子:
积分:
0
5#
发表于 2017-10-20 16:58:16 |
飞飞飞 发表于 2017-10-20 16:30
在微信的开发文档中这样的说明:

您这个集成是微信原生的SDK,并不是ShareSDK哦,关于微信原生的SDK的集成问题您需要去咨询微信的客服了。

Rank: 1

主题:
帖子:
积分:
0
6#
发表于 2017-10-24 19:29:28 |
我用SHARE_WEBPAGE的分享方式,为啥分享出去的只是一张图片而不是一个网页链接呢?

Rank: 5Rank: 5

主题:
帖子:
积分:
0
7#
发表于 2017-10-25 11:01:29 |
白璐大白 发表于 2017-10-24 19:29
我用SHARE_WEBPAGE的分享方式,为啥分享出去的只是一张图片而不是一个网页链接呢? ...

您微信绕过了审核了吗?

Rank: 1

主题:
帖子:
积分:
0
8#
发表于 2017-11-2 15:20:42 |
src下的cn.sharesdk.onekeyshare粘贴到项目哪里   我自己的包名是com.jiii.likk

Rank: 5Rank: 5

主题:
帖子:
积分:
0
9#
发表于 2017-11-2 15:36:42 |
cn.sharesdk.onekeyshare这是一键分享的源码,放置到您的src/main/java这个目录结构下。

Rank: 1

主题:
帖子:
积分:
0
10#
发表于 2017-11-4 10:42:30 |
微信和qq都是打开之后就回掉了onComplete,请问下是什么原因呢
123下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持
免费咨询 | 24小时在线
快速回复 返回顶部 返回列表