QQApi.java
3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.polysoft.nafmii.wechat;
import android.app.Activity;
import android.app.Application;
import android.graphics.Bitmap;
import android.os.Bundle;
import com.polysoft.nafmii.utils.CtxUtils;
import com.polysoft.nafmii.webview.JsInterfaceHandler;
import com.tencent.connect.share.QQShare;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;
import com.whaty.nafmii.BuildConfig;
import com.whaty.nafmii.activity.MainActivity;
public class QQApi {
private static QQApi INSTANCE = null;
private final Tencent mTencent;
public static synchronized QQApi getInstance() {
if (null == INSTANCE) {
// Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。
// 其中APP_ID是分配给第三方应用的appid,类型为String。
// 其中Authorities为 Manifest文件中注册FileProvider时设置的authorities属性值
Application app = CtxUtils.getApplication();
String Authorities = String.format("%s.fileprovider", app.getPackageName());
Tencent tencent = Tencent.createInstance(BuildConfig.QQ_APPID, app, Authorities);
INSTANCE = new QQApi(tencent);
}
return INSTANCE;
}
private QQApi(Tencent tencent) {
this.mTencent = tencent;
}
public Tencent getTencent() {
return this.mTencent;
}
public void share(Activity activity, ShareBean bean, IUiListener listener) {
String shareType = bean.getShareType();
Bundle params = null;
if ("0".equals(shareType)) { // 分享文字
} else if ("1".equals(shareType)) { // 分享图片
} else if ("3".equals(shareType)) { // 分享url地址
params = this.shareUrl(bean);
}
if (null != params) {
mTencent.shareToQQ(activity, params, listener);
}
}
public Bundle shareUrl(ShareBean bean) {
final Bundle params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
params.putString(QQShare.SHARE_TO_QQ_TITLE, bean.getTitle());
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, bean.getContent());
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, bean.getWebUrl());
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, bean.getWebImg());
params.putString(QQShare.SHARE_TO_QQ_APP_NAME, CtxUtils.getAppName());
// params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, "其他附加功能");
return params;
}
public static class JSShareCallback implements IUiListener {
private final JsInterfaceHandler.JsInterface jsInterface;
public JSShareCallback(JsInterfaceHandler.JsInterface jsInterface) {
this.jsInterface = jsInterface;
}
@Override
public void onComplete(Object o) {
jsInterface.callJs(WechatResult.shareSuccess());
}
@Override
public void onError(UiError uiError) {
jsInterface.callJs(WechatResult.fail("分享失败"));
}
@Override
public void onCancel() {
jsInterface.callJs(WechatResult.cancel());
}
@Override
public void onWarning(int i) {
jsInterface.callJs(WechatResult.fail("分享失败"));
}
}
}