Commit 70f3fe72 by amateur

1

1 parent cc6db650
...@@ -19,6 +19,7 @@ android { ...@@ -19,6 +19,7 @@ android {
buildConfigField "String", "API_HOST", "\"http://10.10.81.189/nafmii/app/\"" buildConfigField "String", "API_HOST", "\"http://10.10.81.189/nafmii/app/\""
buildConfigField "String", "IMG_API", "\"http://10.10.81.172/group1/\"" buildConfigField "String", "IMG_API", "\"http://10.10.81.172/group1/\""
buildConfigField "String", "WX_APPID", "\"wx06a3b88ecb27f0d8\"" buildConfigField "String", "WX_APPID", "\"wx06a3b88ecb27f0d8\""
buildConfigField "String", "QQ_APPID", "\"101975384\""
buildConfigField "String", "ONLINE_URL", "\"http://10.10.81.189/h5/\"" buildConfigField "String", "ONLINE_URL", "\"http://10.10.81.189/h5/\""
buildConfigField "String", "MODULE_LEARN", "\"http://ycjytest.cfae.cn/sites/bank/mb/index.html\"" buildConfigField "String", "MODULE_LEARN", "\"http://ycjytest.cfae.cn/sites/bank/mb/index.html\""
buildConfigField "boolean", "SHOW_INPUT", "true" buildConfigField "boolean", "SHOW_INPUT", "true"
...@@ -97,6 +98,7 @@ android { ...@@ -97,6 +98,7 @@ android {
resValue "string", "app_name", "NAFMII之窗-uat" resValue "string", "app_name", "NAFMII之窗-uat"
applicationIdSuffix "uat" applicationIdSuffix "uat"
buildConfigField "String", "WX_APPID", "\"wxb9dd952e6522ef31\"" buildConfigField "String", "WX_APPID", "\"wxb9dd952e6522ef31\""
buildConfigField "String", "QQ_APPID", "\"101975384\""
buildConfigField "String", "API_HOST", "\"https://nafmiiappuat.cfae.cn/nafmii/app/\"" buildConfigField "String", "API_HOST", "\"https://nafmiiappuat.cfae.cn/nafmii/app/\""
buildConfigField "String", "IMG_API", "\"https://nafmiiappuat.cfae.cn/file/\"" buildConfigField "String", "IMG_API", "\"https://nafmiiappuat.cfae.cn/file/\""
buildConfigField "String", "ONLINE_URL", "\"https://nafmiiappuat.cfae.cn/h5/\"" buildConfigField "String", "ONLINE_URL", "\"https://nafmiiappuat.cfae.cn/h5/\""
...@@ -114,6 +116,7 @@ android { ...@@ -114,6 +116,7 @@ android {
resValue "string", "app_name", "NAFMII之窗-dev" resValue "string", "app_name", "NAFMII之窗-dev"
applicationIdSuffix "dev" applicationIdSuffix "dev"
buildConfigField "String", "WX_APPID", "\"wx06a3b88ecb27f0d8\"" buildConfigField "String", "WX_APPID", "\"wx06a3b88ecb27f0d8\""
buildConfigField "String", "QQ_APPID", "\"101975384\""
buildConfigField "String", "API_HOST", "\"http://10.10.81.189/nafmii/app/\"" buildConfigField "String", "API_HOST", "\"http://10.10.81.189/nafmii/app/\""
buildConfigField "String", "IMG_API", "\"http://10.10.81.172/group1/\"" buildConfigField "String", "IMG_API", "\"http://10.10.81.172/group1/\""
buildConfigField "String", "ONLINE_URL", "\"http://10.10.81.189/h5/\"" buildConfigField "String", "ONLINE_URL", "\"http://10.10.81.189/h5/\""
......
...@@ -71,7 +71,25 @@ ...@@ -71,7 +71,25 @@
android:name="com.whaty.nafmii.activity.TestHomeActivity" android:name="com.whaty.nafmii.activity.TestHomeActivity"
android:theme="@style/Nafmii.Fullscreen.NoTitleBar" /> android:theme="@style/Nafmii.Fullscreen.NoTitleBar" />
<activity android:name="com.whaty.nafmii.activity.AdvertisementWebviewActvity" /> <activity android:name="com.whaty.nafmii.activity.AdvertisementWebviewActvity" />
<!-- QQ 环境配置-->
<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="tencent${applicationId}" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="behind"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 微信开发环境--> <!-- 微信开发环境-->
<activity <activity
android:name="com.whaty.nafmii.dev.wxapi.WXEntryActivity" android:name="com.whaty.nafmii.dev.wxapi.WXEntryActivity"
......
package com.polysoft.nafmii.utils; package com.polysoft.nafmii.utils;
import android.app.Application; import android.app.Application;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.AssetManager; import android.content.res.AssetManager;
import android.content.res.Resources;
import android.os.Environment; import android.os.Environment;
import java.io.File; import java.io.File;
...@@ -50,5 +52,18 @@ public class CtxUtils { ...@@ -50,5 +52,18 @@ public class CtxUtils {
return new PackageInfo(); return new PackageInfo();
} }
public static String getAppName() {
ApplicationInfo info = getPackageInfo().applicationInfo;
if (null != info) {
try {
Resources resources = getApplication().getResources();
return resources.getString(info.labelRes);
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
} }
...@@ -30,8 +30,11 @@ import com.polysoft.nafmii.utils.FileUtils; ...@@ -30,8 +30,11 @@ import com.polysoft.nafmii.utils.FileUtils;
import com.polysoft.nafmii.utils.IntentUtils; import com.polysoft.nafmii.utils.IntentUtils;
import com.polysoft.nafmii.utils.PermissionUtils; import com.polysoft.nafmii.utils.PermissionUtils;
import com.polysoft.nafmii.utils.StatusBarUtils; import com.polysoft.nafmii.utils.StatusBarUtils;
import com.polysoft.nafmii.wechat.QQApi;
import com.polysoft.nafmii.wechat.ShareBean; import com.polysoft.nafmii.wechat.ShareBean;
import com.polysoft.nafmii.wechat.WechatApi; import com.polysoft.nafmii.wechat.WechatApi;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.UiError;
import com.whaty.nafmii.activity.HomeActivity; import com.whaty.nafmii.activity.HomeActivity;
import com.whaty.nafmii.activity.OutsideWebviewActivity; import com.whaty.nafmii.activity.OutsideWebviewActivity;
...@@ -110,17 +113,25 @@ public class NativeApi { ...@@ -110,17 +113,25 @@ public class NativeApi {
@JavascriptInterface @JavascriptInterface
public void nativeShare(String params) { public void nativeShare(String params) {
new JsInterfaceHandler(handler).parse(params, (data, js) -> { new JsInterfaceHandler(handler).parse(params, (data, js) -> {
WechatApi instance = WechatApi.getInstance(mActivity); ShareBean bean = TypeUtils.castToJavaBean(data, ShareBean.class);
if (!instance.isWXAppInstalled()) { if ("2".equals(bean.getScene())) { // 分享到QQ
js.callJs(Result.fail("未安装应用")); QQApi instance = QQApi.getInstance();
} mActivity.runOnUiThread(() ->{
final Receiver<Result> shareReceiver = WechatReceiver.getInstance(mActivity); instance.share(mActivity, bean, new QQApi.JSShareCallback(js));
shareReceiver.addDefaultListener((action, share) -> { });
js.callJs(share); } else {
shareReceiver.addDefaultListener(null); WechatApi instance = WechatApi.getInstance(mActivity);
}); if (!instance.isWXAppInstalled()) {
js.callJs(Result.fail("未安装应用"));
}
final Receiver<Result> shareReceiver = WechatReceiver.getInstance(mActivity);
shareReceiver.addDefaultListener((action, share) -> {
js.callJs(share);
shareReceiver.addDefaultListener(null);
});
mActivity.runOnUiThread(() -> instance.share(mActivity, TypeUtils.castToJavaBean(data, ShareBean.class))); mActivity.runOnUiThread(() -> instance.share(mActivity, TypeUtils.castToJavaBean(data, ShareBean.class)));
}
}); });
} }
......
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("分享失败"));
}
}
}
...@@ -72,6 +72,9 @@ public class WechatApi { ...@@ -72,6 +72,9 @@ public class WechatApi {
} }
public void share(Context ctx, final ShareBean bean) { public void share(Context ctx, final ShareBean bean) {
if ("2".equals(bean.getScene())) {
}
String webImg = bean.getWebImg(); String webImg = bean.getWebImg();
String shareType = bean.getShareType(); String shareType = bean.getShareType();
if ("0".equals(shareType)) { // 分享文字 if ("0".equals(shareType)) { // 分享文字
...@@ -125,9 +128,10 @@ public class WechatApi { ...@@ -125,9 +128,10 @@ public class WechatApi {
return SendMessageToWX.Req.WXSceneTimeline; return SendMessageToWX.Req.WXSceneTimeline;
} else if ("1".equals(scene)) { // 分享到好友 } else if ("1".equals(scene)) { // 分享到好友
return SendMessageToWX.Req.WXSceneSession; return SendMessageToWX.Req.WXSceneSession;
} else if ("2".equals(scene)) { // 分享到收藏夹
return SendMessageToWX.Req.WXSceneFavorite;
} }
// else if ("2".equals(scene)) { // 分享到收藏夹
// return SendMessageToWX.Req.WXSceneFavorite;
// }
// 默认分享到好友 // 默认分享到好友
return SendMessageToWX.Req.WXSceneSession; return SendMessageToWX.Req.WXSceneSession;
} }
......
...@@ -5,6 +5,7 @@ import android.app.Application; ...@@ -5,6 +5,7 @@ import android.app.Application;
import com.polysoft.nafmii.utils.CtxUtils; import com.polysoft.nafmii.utils.CtxUtils;
import com.polysoft.nafmii.utils.ExecutorUtils; import com.polysoft.nafmii.utils.ExecutorUtils;
import com.polysoft.nafmii.utils.ZipUtils; import com.polysoft.nafmii.utils.ZipUtils;
import com.tencent.tauth.Tencent;
import cn.jpush.android.api.JPushInterface; import cn.jpush.android.api.JPushInterface;
import me.jessyan.autosize.AutoSizeConfig; import me.jessyan.autosize.AutoSizeConfig;
...@@ -32,4 +33,6 @@ public class MyApplication extends Application { ...@@ -32,4 +33,6 @@ public class MyApplication extends Application {
ZipUtils.unZipDistAssets(); ZipUtils.unZipDistAssets();
}); });
} }
} }
package com.whaty.nafmii.activity; package com.whaty.nafmii.activity;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.Nullable;
import com.polysoft.nafmii.webview.X5Core; import com.polysoft.nafmii.webview.X5Core;
import com.polysoft.nafmii.wechat.QQApi;
public abstract class WebviewActivity extends BaseActivity{ public abstract class WebviewActivity extends BaseActivity{
...@@ -13,4 +17,9 @@ public abstract class WebviewActivity extends BaseActivity{ ...@@ -13,4 +17,9 @@ public abstract class WebviewActivity extends BaseActivity{
}); });
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// QQApi.getTencent().onActivityResult(requestCode, resultCode, data);
}
} }
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!