ShareSDk的使用,实现一键分享微信好友、朋友圈、QQ
事先说明:
ShareSDK默认QQ可以分享,微信分享则需要在微信的开放平台上认证并申请应用填入对应信息即可
微信认证和申请应用涉及到打包和签名APK,请大家自行查询相关资料进行操作
关于ShareSDK的开发,参考ShareSDK官网为准
步骤一:在ShareSDk官网注册账号,并创建应用:
步骤二:在ShareSDk官网下载所需要的分享的SDK(这里只是介绍微信和QQ两种,其他都一样):
步骤三:将下载好的包解压,在Android Studio中导入两个Module,在ShareSDk for Android文件夹Libs目录下2个文件夹,即是要导入的Module
导入之后,项目结构多了一个oneKeyShareNew和shareSDK:
步骤四:接着右键oneKeyShareNew,open Module Settings,添加对ShareSDK的依赖
步骤五:重复上面步骤,在自己的项目中添加对oneKeyShareNew的依赖
步骤六:在你的项目中创建一个Assets的目录,将ShareSDK for Android/Res目录下的ShareSDK.xml复制到Assets
步骤七:将ShareSDK for Android/Src目录下的wxapi文件夹复制到你的项目中
步骤八:添加权限
<uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <!-- 蓝牙分享所需的权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
步骤九:在ShareSDK.xml中添加ShareSDK应用APPKey
<ShareSDK AppKey = "1185fd429f4da"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"-->
步骤十:添加所ShareSDK需要的manifests配置
<!-- shareSDK begin --> <activity android:name="com.mob.tools.MobUIShell" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:windowSoftInputMode="stateHidden|adjustResize"> <intent-filter> <data android:scheme="tencent1104646053" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!-- 微信分享回调 --> <activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- shareSDK end -->
步骤十一:在代码中可以使用官方文档代码进行分享了
/** * 一鍵分享 */ private void showShare() { //ShareSDK初始化 ShareSDK.initSDK(getActivity()); OnekeyShare oks = new OnekeyShare(); //关闭sso授权 oks.disableSSOWhenAuthorize(); // 分享时Notification的图标和文字 2.5.9以后的版本不调用此方法 //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name)); // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用 oks.setTitle("分享"); // titleUrl是标题的网络链接,仅在人人网和QQ空间使用 oks.setTitleUrl("http://sharesdk.cn"); // text是分享文本,所有平台都需要这个字段 oks.setText("我爱京东"); // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数 // oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片 // url仅在微信(包括好友和朋友圈)中使用 oks.setUrl("http://sharesdk.cn"); // comment是我对这条分享的评论,仅在人人网和QQ空间使用 //oks.setComment("我是测试评论文本"); // site是分享此内容的网站名称,仅在QQ空间使用 oks.setSite("我爱京东"); // siteUrl是分享此内容的网站地址,仅在QQ空间使用 oks.setSiteUrl("http://sharesdk.cn"); // 启动分享GUI oks.show(getActivity()); } @Override public void onDestroy() { super.onDestroy(); //停止shareSDK ShareSDK.stopSDK(getActivity()); }
步骤十三:查看效果图(QQ和weChat)
其他效果图(新浪微博、腾讯微博、QQ空间)