超简单友盟分享(微信、QQ)+ 原生微信分享
友盟分享(微信、QQ)
之前写的项目好好的,后来打开就报这个错,搜半天没搜到解决方法。
Could not GET ‘https://dl.bintray.com/umsdk/release/com/umeng/umsdk/common/9.3.3/common-9.3.3.pom’. Received status code 403 from server: Forbidden Enable Gradle ‘offline mode’ and sync project
但是姐妹!看一下官方文档。可能是集成的SDK不行了。把SDK替换成官方文档中最新的试试。哈哈。
友盟分享官方文档真的真的写的很详细了。直接复制粘贴就好了。
前提:【友盟+】官网注册并且添加新应用,获得Appkey
第一步:在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】SDK maven仓库地址。
maven {
url 'https://repo1.maven.org/maven2/'}
第二步:在工程App对应build.gradle配置脚本dependencies段中添加基础组件库和分享核心库依赖:
compile 'com.umeng.umsdk:common:9.3.8'//必选
compile 'com.umeng.umsdk:asms:1.2.2'//必选
第三步:集成U-Share SDK
compile 'com.umeng.umsdk:share-core:7.1.4'//分享核心库,必选
compile 'com.umeng.umsdk:share-board:7.1.4'//分享面板功能,可选
compile 'com.umeng.umsdk:share-qq:7.1.4'
compile 'com.tencent.tauth:qqopensdk:3.51.2'//QQ官方SDK依赖库
compile 'com.umeng.umsdk:share-wx:7.1.4'
compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.6.5'//微信官方SDK依赖库
第四步:添加回调Activity
微信在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity。
QQ不需要添加Activity,但需要在使用QQ分享或者授权的Activity中,添加:
@Override
protectedvoid onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
第五步:微信需要在工程AndroidManifest.xml清单文件中增加:
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
第六步:微信分享模块还需要在工程AndroidManifest.xml清单文件中增加provider标签配置
<!--友盟-->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="你的应用包名.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/wx_filepaths" />
</provider>
微信分享模块集成时除了要配置工程AndroidManifest.xml清单文件之外,还需要在res/xml目录(如果没有xml目录,则新建一个)下,添加文件wx_filepaths.xml,内容如下:
wx_filepaths
<?xml version="1.0" encoding="utf-8"?>
<pathsxmlns:android="http://schemas.android.com/apk/res/android">
<external-files-pathname="umeng_cache"path="umeng_cache/"/>
</paths>
QQ需要在工程AndroidManifest.xml清单文件中增加以下参数:
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100424468" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<provider
android:authorities="com.zbzl.fileprovider"
android:name="androidx.core.content.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/qq_file_paths"/>
</provider>
QQ依赖QQ官方SDKv3.51.2,集成时除了要配置工程AndroidManifest.xml清单文件之外,还需要同时需要在工程res目录下新建qq_file_paths.xml
qq_file_paths
<!-- QQ 官方分享SDK 共享路径 -->
<root-pathname="opensdk_root"path=""/>
<external-files-pathname="opensdk_external"path="Images/tmp"/>
第七步:权限添加
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
纯图分享权限如果需要使用QQ纯图分享或避免其它平台纯图分享的时候图片不被压缩,可以增加以下权限:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
第八步:Application初始化设置
@Override
public void onCreate() {
super.onCreate();
UMConfigure.init(this, "友盟appkey"
, "umeng", UMConfigure.DEVICE_TYPE_PHONE, "");
// 微信设置
PlatformConfig.setWeixin("微信appkey", "微信appSecret");
PlatformConfig.setWXFileProvider("com.tencent.sample2.fileprovider");
// QQ设置
PlatformConfig.setQQZone("QQappkey", "QQappSecret");
PlatformConfig.setQQFileProvider