第三方SDK集成庫,支持 受權/分享/支付 等功能java
目前這個庫還不穩定,有些細節並未仔細考慮,有些功能也並未進行測試,支持的平臺也很少,歡迎你們 star/issue/pr,共同完善這個庫android
成功後的結果爲 "code|{code}", "token|{openId}|{token}" 兩種形式git
但客戶端其實不須要關心是code仍是token,直接把result髮結服務端就行了github
不少支付類庫會在客戶端處理商品支付信息,其實這是沒必要要要的,直接由服務端返回數據並交給支付SDK,而後處理支付結果就行了後端
支持 純文本/純圖片/圖文/網頁/音樂/視頻 等分享類型微信
平臺 | 純文本 | 純圖片 | 圖文 | 網頁 | 音樂 | 視頻 |
---|---|---|---|---|---|---|
x | o | x | o | o | x | |
QZone | o | o | o | o | x | o |
WXSession | o | o | x | o | o | o |
WXTimeline | o | o | x | o | o | o |
o | o | o | x | x | x |
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.czy1121:sdk3rd:0.1.0'
}複製代碼
或app
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.czy1121.sdk3rd:sdk3rd:0.1.0'
compile 'com.github.czy1121.sdk3rd:sdk3rd-alipay:0.1.0'
compile 'com.github.czy1121.sdk3rd:sdk3rd-qq:0.1.0'
}複製代碼
配置APPIDmaven
PlatformConfig.useQQ(BuildConfig.APPID_QQ);
PlatformConfig.useWeixin(BuildConfig.APPID_WEIXIN);
PlatformConfig.useWeibo(BuildConfig.APPID_WEIBO, "http://www.sina.com/");
PlatformConfig.usePayments();複製代碼
設置全局事件回調(非必要)ide
AuthorizeSDK.setDefaultCallback(new OnCallback() {
@Override
public void onStarted(Activity activity) {
Log.e("ezy", "authorize started");
}
@Override
public void onCompleted(Activity activity) {
Log.e("ezy", "authorize completed");
}
@Override
public void onSucceed(Activity activity, Object result) {
Log.e("ezy", "authorize succeed");
}
@Override
public void onFailed(Activity activity, int code, String message) {
Log.e("ezy", "authorize failed [" + code + "]" + message);
}
});複製代碼
接收受權結果(新浪微博/QQ)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
AuthorizeSDK.onHandleResult(this, requestCode, resultCode, data);
}複製代碼
調用受權
AuthorizeSDK.authorize(MainActivity.this, platform, new OnSucceed<String>() {
@Override
public void onSucceed(String result) {
Toast.makeText(MainActivity.this, "登錄成功 - " + result, Toast.LENGTH_LONG).show();
}
});複製代碼
註冊自定義平臺,須要實現 IAuthorize 與相應的 IFactory
AuthorizeSDK.register(IFactory<IAuthorize> factory);
AuthorizeSDK.register(String platformName, String appId, Class<IAuthorize> clazz);複製代碼
全局事件回調的設置與受權SDK相似
調用支付
PaymentSDK.pay(MainActivity.this, platform, paydata, new OnSucceed<String>() {
@Override
public void onSucceed(String result) {
// todo
}
});複製代碼
註冊自定義平臺,須要實現 IPayable 與相應的 IFactory
PaymentSDK.register(IFactory<IPayable> factory);
PaymentSDK.register(String platformName, Class<IPayable> clazz);複製代碼
全局事件回調的設置與受權SDK相似
...
分享結果的接收也與受權SDK相似(QQ)
...
註冊自定義平臺,須要實現 IShareable 與相應的 IFactory
ShareSDK.register(IFactory<IShareable> factory);
ShareSDK.register(String platformName, String appId, Class<IShareable> clazz);複製代碼
分享
// 分享純文本
ShareSDK.make(this, text).share(platform);
// 分享純圖片
ShareSDK.make(this, new MoImage(image)).share(platform);
// 分享圖文
ShareSDK.make(this, text, new MoImage(image)).share(platform);
// 分享網頁連接
ShareSDK.make(this, new MoWeb(url))
.withTitle("這是標題")
.withDescription("這是摘要")
.withThumb(thumb)
.share(platform, new OnSucceed<String>() {
@Override
public void onSucceed(String result) {
Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();
}
});
// 分享音樂
ShareSDK.make(this, new MoMusic(url))
.withTitle("這是標題")
.withDescription("這是摘要")
.withThumb(thumb)
.share(platform);複製代碼
友盟+分享組件90%常見問題彙總
bbs.umeng.com/thread-1776…
友盟各平臺可分享內容預覽
dev.umeng.com/social/andr…
Android 不一樣平臺分享內容的詳細說明
wiki.mob.com/不一樣平臺分享內容的詳細…