QQ第三方分享詳解
阿新 • • 發佈:2019-02-08
在友盟中下載QQ的SDK:
http://bbs.umeng.com/portal.phpSDK檔案目錄介紹
- main -- 核心庫
umeng_social_api.jar
umeng_social_net.jar
umeng_social_tool.jar
- platforms -- 分享平臺庫
QQ精簡版(SocialSDK_QQ_Simplify.jar)
這裡只列舉QQ、最終platforms資料夾內包含的檔案與下載頁面選擇的平臺有關
- shareboard
umeng_shareboard_widget.jar(工程中存在support v4或不使用面板可以不加)
umeng_social_shareboard.jar
拷貝jar及res
拷貝jar和res有如下兩種形式
a.將main資料夾以及platform(選擇你想使用的平臺即可)檔案下,對應的資原始檔和jar放入你的工程
修改AndroidManiFest
首先需要新增許可權:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/> <uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.GET_TASKS"/>
其中由於QQ登陸模組重複新增的許可權
友盟分享分為兩種形式:
- 分享面板分享,使用者可以呼叫我們提供的預設分享面板UI,開啟分享面板,然後點選分享面板的對應平臺進行分享
- 直接分享,使用者可以自己寫分享按鈕,或者觸發事件,然後呼叫我們的分享方法,進行分享。
設定分享連結
分享連結可以使用UMWeb進行分享:
UMWeb web = new UMWeb(Defaultcontent.url);
web.setTitle("This is music title");//標題
web.setThumb(thumb); //縮圖
web.setDescription("my description");//描述
開啟分享面板
在需要彈出分享面板選擇頁的地方呼叫下列程式碼
new ShareAction(MainActivity.this) .withText("hello")
要分享的網頁 .withMedia(web)
分享的APP
setDisplayList中設定的列舉引數就是最終分享面板中顯示的平臺,
所傳入引數的順序即為最終面板分享平臺的排列順序 .setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN) .setCallback(umShareListener).open();
onActivityResult實現方法如下:
@Override
protectedvoidonActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
直接分享
簡而言之,直接分享就是在使用者自己的介面元件中插入分享行為
分享可以通過如下程式碼實現,不同平臺只要傳入不同的SHARE_MEDIA即可。
new ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ)
.withText("hello")
.setCallback(umShareListener)
.share();
其中umShareListener為回撥監聽,構建如下,其中分享成功會回撥onComplete,取消分享回撥onCancel,分享錯誤回撥onError,對應的錯誤資訊可以用過onError的Throwable引數來列印
private UMShareListener umShareListener = new UMShareListener() {
@Override
publicvoidonStart(SHARE_MEDIA platform){
//分享開始的回撥
}
@Override
publicvoidonResult(SHARE_MEDIA platform){
Log.d("plat","platform"+platform);
Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
}
@Override
publicvoidonError(SHARE_MEDIA platform, Throwable t){
Toast.makeText(MainActivity.this,platform + " 分享失敗啦", Toast.LENGTH_SHORT).show();
if(t!=null){
Log.d("throw","throw:"+t.getMessage());
}
}
@Override
publicvoidonCancel(SHARE_MEDIA platform){
Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();
}
};
詳細程式碼見http://dev.umeng.com/social/android/share-detail
compile 'com.github.bumptech.glide:glide:3.8.0' compile 'de.hdodenhof:circleimageview:2.1.0'
在Gradle Scripts的工程下加入這兩個JAR包
Glide是和Imageloader一樣的圖片展示控制元件
使用方法:
Glide.with(MainActivity.this) //上下文
.load(map.get("iconurl")) //要在登陸中展示的User的圖片
.into(img); //xml佈局中的控制元件
circleimageview //直接在xml中使用
<de.hdodenhof.circleimageview.CircleImageView android:layout_width="50dp" android:layout_height="50dp" android:id="@+id/img" />
效果展示是一張圓形的圖片