Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5a461feb02 | ||
![]() |
54e887e8f1 | ||
![]() |
0645e6e5de | ||
![]() |
afd146d3e8 | ||
![]() |
048609ce9c | ||
![]() |
0c6d26b3d0 | ||
![]() |
e11ccb2fb4 |
@ -10,5 +10,6 @@ key pass: 7654321Kingsome_
|
||||
vivo key alias: vivo
|
||||
oppo key alias: oppo
|
||||
xiaomi key alias: release
|
||||
baidu key alias: baidu
|
||||
|
||||
```
|
||||
|
@ -3,14 +3,15 @@ apply plugin: 'com.android.application'
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
defaultConfig {
|
||||
applicationId "com.hnjc.wjtx.mi"
|
||||
applicationId "com.hnjc.wjtx.g.baidu"
|
||||
minSdkVersion 18
|
||||
targetSdkVersion 28
|
||||
versionCode 1
|
||||
versionName "1.0.0"
|
||||
versionCode 3
|
||||
versionName "1.0.3"
|
||||
ndk {
|
||||
abiFilters 'armeabi-v7a'
|
||||
}
|
||||
multiDexEnabled true
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
@ -37,6 +38,8 @@ android {
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
implementation 'com.android.support:multidex:1.0.3'
|
||||
implementation 'com.android.volley:volley:1.1.1'
|
||||
implementation 'org.greenrobot:eventbus:3.2.0'
|
||||
}
|
||||
|
BIN
app/libs/BaiduGameSDK_v1.6.0.3.aar
Normal file
BIN
app/libs/BaiduGameSDK_v1.6.0.3.aar
Normal file
Binary file not shown.
BIN
app/libs/msa_mdid_1.0.13.aar
Normal file
BIN
app/libs/msa_mdid_1.0.13.aar
Normal file
Binary file not shown.
BIN
app/libs/onekey_login_ssolibrary-1.0.2.aar
Normal file
BIN
app/libs/onekey_login_ssolibrary-1.0.2.aar
Normal file
Binary file not shown.
BIN
app/libs/pass-httpclient-1.4.1.2.aar
Normal file
BIN
app/libs/pass-httpclient-1.4.1.2.aar
Normal file
Binary file not shown.
BIN
app/libs/sapi-pass-core-9.1.5.aar
Normal file
BIN
app/libs/sapi-pass-core-9.1.5.aar
Normal file
Binary file not shown.
BIN
app/libs/sapi-pass-enhanced-9.1.5.aar
Normal file
BIN
app/libs/sapi-pass-enhanced-9.1.5.aar
Normal file
Binary file not shown.
BIN
app/libs/sofire-sdk-3.3.9.8.2.aar
Normal file
BIN
app/libs/sofire-sdk-3.3.9.8.2.aar
Normal file
Binary file not shown.
28
app/proguard-rules.pro
vendored
28
app/proguard-rules.pro
vendored
@ -84,8 +84,34 @@
|
||||
-keep class **.R$styleable{*;}
|
||||
|
||||
-keep class com.hnjc.wjtx.mi.** { *; }
|
||||
-dontwarn com.hnjc.wjtx.mi.**
|
||||
-dontwarn com.hnjc.wjtx.**
|
||||
|
||||
|
||||
-keep class org.egret.** { *; }
|
||||
-dontwarn org.egret.**
|
||||
|
||||
-keepclassmembers public class * extends android.app.Activity {
|
||||
public *;
|
||||
}
|
||||
-keep public class * extends android.support.v4.app.Fragment
|
||||
-keep public class * extends android.app.Fragment
|
||||
|
||||
# 支付第三方SDK
|
||||
|
||||
-keep class com.tencent..** {
|
||||
*;
|
||||
}
|
||||
-keep class com.alipay.** {
|
||||
*;
|
||||
}
|
||||
-keep class com.baidu.** {
|
||||
*;
|
||||
}
|
||||
-keep class com.bun.miitmdid.core.** {*;}
|
||||
|
||||
-dontnote com.baidu.sapi2.**
|
||||
-dontwarn com.squareup.picasso.**
|
||||
-dontwarn android.support.test.**
|
||||
-dontwarn com.baidu.sapi2.**
|
||||
-dontwarn com.alipay.**
|
||||
-dontwarn com.baidu.sofire.**
|
@ -2,20 +2,40 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.hnjc.wjtx">
|
||||
|
||||
|
||||
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
|
||||
<!-- ↓↓↓ SDK ↓↓↓ -->
|
||||
<uses-permission android:name="android.permission.SEND_SMS" />
|
||||
<uses-permission android:name="android.permission.GET_TASKS" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
|
||||
<!-- 百度PUSH 适配Android N系统必需的ContentProvider写权限声明,写权限包含应用包名 -->
|
||||
<uses-permission
|
||||
android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.hnjc.wjtx.g.baidu" />
|
||||
<permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.hnjc.wjtx.g.baidu"
|
||||
android:protectionLevel="normal" />
|
||||
|
||||
<supports-screens
|
||||
android:anyDensity="true"
|
||||
android:largeScreens="true"
|
||||
android:normalScreens="true"
|
||||
android:smallScreens="true" />
|
||||
|
||||
<application
|
||||
android:allowBackup="false"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:icon="@drawable/icon"
|
||||
android:name=".JCApplication"
|
||||
android:label="@string/app_name"
|
||||
android:usesCleartextTraffic="true"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
|
||||
|
||||
<meta-data android:name="android.max_aspect" android:value="2.2" />
|
||||
@ -39,19 +59,26 @@
|
||||
|
||||
</activity>
|
||||
|
||||
<!-- <activity android:name=".MainActivity"-->
|
||||
<!-- android:launchMode="singleTask"-->
|
||||
<!-- android:screenOrientation="portrait"-->
|
||||
<!-- android:windowSoftInputMode="adjustPan|stateAlwaysVisible"-->
|
||||
<!-- android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"-->
|
||||
<!-- android:theme="@android:style/Theme.NoTitleBar.Fullscreen">-->
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
<meta-data android:name="android.notch_support" android:value="true"/>
|
||||
<!-- 适配Android P,否则系统缺少相关类会崩溃 -->
|
||||
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
<!-- </activity>-->
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.hnjc.wjtx.g.baidu.fileprovider"
|
||||
android:grantUriPermissions="true"
|
||||
android:exported="false">
|
||||
<!--元数据-->
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/provider_paths" />
|
||||
</provider>
|
||||
|
||||
<!-- 适配Android N系统必需的ContentProvider声明,写权限包含应用包名-->
|
||||
<provider android:name="com.baidu.android.pushservice.PushInfoProvider"
|
||||
android:authorities="com.hnjc.wjtx.bdpush" android:exported="true"
|
||||
android:protectionLevel="signature"
|
||||
android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.hnjc.wjtx.g.baidu" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
27
app/src/main/java/com/hnjc/wjtx/BaseActivity.java
Normal file
27
app/src/main/java/com/hnjc/wjtx/BaseActivity.java
Normal file
@ -0,0 +1,27 @@
|
||||
package com.hnjc.wjtx;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.baidu.gamesdk.BDGameSDK;
|
||||
|
||||
public class BaseActivity extends Activity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
BDGameSDK.onResume(this); // 【必接】Activity监听
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
BDGameSDK.onPause(this); // 【必接】Activity监听
|
||||
}
|
||||
|
||||
}
|
@ -1,12 +1,14 @@
|
||||
package com.hnjc.wjtx;
|
||||
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
|
||||
public class JCApplication extends Application {
|
||||
import androidx.multidex.MultiDexApplication;
|
||||
|
||||
public class JCApplication extends MultiDexApplication {
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
Log.i("JCApplication", "JCApplication onCreate");
|
||||
com.baidu.gamesdk.BDGameSDK.initApplication(this);
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,6 @@
|
||||
package com.hnjc.wjtx;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@ -11,7 +8,12 @@ import android.os.Message;
|
||||
import android.util.Log;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.baidu.gamesdk.BDGameSDK;
|
||||
import com.baidu.gamesdk.BDGameSDKSetting;
|
||||
import com.baidu.gamesdk.ResultCode;
|
||||
import com.baidu.platformsdk.utils.PermissionUtils;
|
||||
import com.hnjc.wjtx.net.DownloadRunnable;
|
||||
import com.hnjc.wjtx.net.TaskInfo;
|
||||
import com.hnjc.wjtx.net.WebApi;
|
||||
@ -23,8 +25,11 @@ import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public class LaunchActivity extends Activity {
|
||||
import static com.baidu.platformsdk.utils.PermissionUtils.requestRuntimePermissions;
|
||||
|
||||
public class LaunchActivity extends BaseActivity {
|
||||
private final String TAG = "LaunchActivity";
|
||||
private final String ZERO_VERSION = "0";
|
||||
private ProgressBar progressBar = null;
|
||||
@ -53,7 +58,10 @@ public class LaunchActivity extends Activity {
|
||||
// 解压任务
|
||||
private UnzipRunnable unzipRunnable;
|
||||
|
||||
private static final String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
private static final String[] PERMISSIONS_STORAGE = {"android.permission.READ_EXTERNAL_STORAGE",
|
||||
"android.permission.WRITE_EXTERNAL_STORAGE",
|
||||
"android.permission.READ_PHONE_STATE"
|
||||
};
|
||||
|
||||
private Handler handler = new Handler(new Handler.Callback() {
|
||||
@Override
|
||||
@ -95,12 +103,23 @@ public class LaunchActivity extends Activity {
|
||||
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
int check = checkSelfPermission(permissions[0]);
|
||||
if (check != PackageManager.PERMISSION_GRANTED) {
|
||||
requestPermissions(permissions, 111);
|
||||
requestRuntimePermissions(this, PERMISSIONS_STORAGE,
|
||||
new PermissionUtils.PermissionListener() {
|
||||
@Override
|
||||
public void granted() {
|
||||
// 权限申请通过
|
||||
initBDGameSDK();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void denied(List<String> deniedList) {
|
||||
Toast.makeText(LaunchActivity.this,
|
||||
"获取权限失败\n请在系统设置为应用添加权限", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
initBDGameSDK();
|
||||
}
|
||||
compareVersions();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -143,7 +162,7 @@ public class LaunchActivity extends Activity {
|
||||
*/
|
||||
private void getLocalVersionInfo() {
|
||||
String fileName = gameUrl.replace("index.html", "version.json");
|
||||
String realPath = getFileDirByUrl(fileName);
|
||||
String realPath = preloadPath + "/" + getFileDirByUrl(fileName) + "version.json" ;
|
||||
File versionFile = new File(realPath);
|
||||
if (versionFile.exists()) {
|
||||
JSONObject data = AssetsUtil.readJsonFromFile(this, realPath);
|
||||
@ -211,7 +230,7 @@ public class LaunchActivity extends Activity {
|
||||
}
|
||||
// 更新远程资源
|
||||
private void preloadGame() {
|
||||
String dir = preloadPath + getFileDirByUrl(gameUrl);
|
||||
String dir = preloadPath + "/" + getFileDirByUrl(gameUrl);
|
||||
File dirFile = new File(dir);
|
||||
if (!dirFile.exists()) {
|
||||
dirFile.mkdirs();
|
||||
@ -309,5 +328,35 @@ public class LaunchActivity extends Activity {
|
||||
// 移除activity的移出场动画
|
||||
overridePendingTransition(0, 0);
|
||||
}
|
||||
@Override
|
||||
public void onRequestPermissionsResult(
|
||||
int requestCode, String[] permissions, int[] grantResults) {
|
||||
PermissionUtils.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
private void initBDGameSDK() { // 初始化游戏SDK
|
||||
BDGameSDKSetting mBDGameSDKSetting = new BDGameSDKSetting();
|
||||
mBDGameSDKSetting.setAppID(23031784); // APPID设置
|
||||
mBDGameSDKSetting.setAppKey("DX7iB9hUPlSWCzA13oinUzcR"); // APPKEY设置
|
||||
mBDGameSDKSetting.setMode(BDGameSDKSetting.SDKMode.ONLINE); // SDK模式默认为网游联网模式
|
||||
mBDGameSDKSetting.setEnableAds(false); // 广告开关
|
||||
mBDGameSDKSetting.setDomain(BDGameSDKSetting.Domain.RELEASE); // 设置为正式模式
|
||||
mBDGameSDKSetting.setOrientation(BDGameSDKSetting.Orientation.PORTRAIT);
|
||||
|
||||
BDGameSDK.init(this, mBDGameSDKSetting, (resultCode, resultDesc, extraData) -> {
|
||||
switch (resultCode) {
|
||||
case ResultCode.INIT_SUCCESS:
|
||||
compareVersions();
|
||||
break;
|
||||
|
||||
case ResultCode.INIT_FAIL:
|
||||
default:
|
||||
Toast.makeText(LaunchActivity.this, "启动失败",
|
||||
Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
// 初始化失败
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,5 @@
|
||||
package com.hnjc.wjtx;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
@ -16,8 +14,10 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.baidu.gamesdk.BDGameSDK;
|
||||
import com.baidu.gamesdk.ResultCode;
|
||||
import com.baidu.platformsdk.PayOrderInfo;
|
||||
import com.hnjc.wjtx.util.AssetsUtil;
|
||||
import com.hnjc.wjtx.util.IdUtil;
|
||||
import com.hnjc.wjtx.util.StorageUtil;
|
||||
import com.hnjc.wjtx.util.StringUtil;
|
||||
|
||||
@ -27,13 +27,14 @@ import org.json.JSONObject;
|
||||
|
||||
//Android项目发布设置详见doc目录下的README_ANDROID.md
|
||||
|
||||
public class MainActivity extends Activity {
|
||||
public class MainActivity extends BaseActivity {
|
||||
private final String TAG = "MainActivity";
|
||||
private EgretNativeAndroid nativeAndroid;
|
||||
private ImageView launchScreenImageView = null;
|
||||
private FrameLayout rootLayout = null;
|
||||
private Vibrator vibrator;
|
||||
|
||||
private String uid;
|
||||
private String token;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -69,6 +70,15 @@ public class MainActivity extends Activity {
|
||||
rootLayout = nativeAndroid.getRootFrameLayout();
|
||||
showLoadingView();
|
||||
vibrator = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
|
||||
setSuspendWindowChangeAccountListener(); // 【必接】设置切换账号事件监听(个人中心界面切换账号)
|
||||
|
||||
setSessionInvalidListener(); // 【选接】设置会话失效监听
|
||||
|
||||
BDGameSDK.showFloatView(this); // 【选接,建议接】显示悬浮窗
|
||||
|
||||
setAntiAddictionListener(); // 【必接】防沉迷相关设置
|
||||
|
||||
BDGameSDK.queryGameUpdateInfo(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -86,19 +96,10 @@ public class MainActivity extends Activity {
|
||||
@Override
|
||||
public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||
//声明并初始化弹出对象
|
||||
AlertDialog.Builder builder=new AlertDialog.Builder(this);
|
||||
builder.setTitle("提示:");
|
||||
builder.setMessage("是否退出");
|
||||
//设置确认按钮
|
||||
builder.setNegativeButton("确定", (dialog, which) -> {
|
||||
BDGameSDK.gameExit(this, () -> {
|
||||
nativeAndroid.exitGame();
|
||||
finish();//退出程序
|
||||
finish();
|
||||
});
|
||||
//设置取消按钮
|
||||
builder.setPositiveButton("取消",null);
|
||||
//显示弹框
|
||||
builder.show();
|
||||
return true;
|
||||
} else {
|
||||
return super.onKeyDown(keyCode, keyEvent);
|
||||
@ -163,19 +164,7 @@ public class MainActivity extends Activity {
|
||||
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
|
||||
});
|
||||
nativeAndroid.setExternalInterface("getUid", message -> {
|
||||
//TODO: 平台的登陆
|
||||
JSONObject obj = new JSONObject();
|
||||
try {
|
||||
obj.put("openid", IdUtil.getUid(this));
|
||||
obj.put("token", "");
|
||||
// 如果其他登陆过程中的错误, 则传入一个大于0的errorcode
|
||||
obj.put("errorcode", 1);
|
||||
nativeAndroid.callExternalInterface("sendUidToJS", obj.toString());
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
nativeAndroid.callExternalInterface("loginCancel", "");
|
||||
}
|
||||
|
||||
login();
|
||||
});
|
||||
nativeAndroid.setExternalInterface("@onState", message -> {
|
||||
Log.e(TAG, "Get @onState: " + message);
|
||||
@ -193,20 +182,50 @@ public class MainActivity extends Activity {
|
||||
// 支付
|
||||
nativeAndroid.setExternalInterface("pay", message -> {
|
||||
|
||||
Log.i(TAG, "begin pay: " + message);
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(message);
|
||||
String cpOrderId = jsonObject.getString("orderId");
|
||||
String productCode = jsonObject.getString("productCode");
|
||||
int count = jsonObject.getInt("count");
|
||||
//TODO: 平台的支付
|
||||
|
||||
PayOrderInfo payOrderInfo = new PayOrderInfo();
|
||||
payOrderInfo.setCooperatorOrderSerial(jsonObject.getString("cooperatorOrderSerial"));
|
||||
payOrderInfo.setProductName(jsonObject.getString("productName"));
|
||||
payOrderInfo.setTotalPriceCent(jsonObject.getLong("totalPriceCent")); // 以分为单位
|
||||
payOrderInfo.setRatio(jsonObject.getInt("ratio"));
|
||||
payOrderInfo.setExtInfo(jsonObject.getString("extInfo")); // 该字段将会在支付成功后原样返回给CP(不超过500个字符)
|
||||
payOrderInfo.setCpUid(jsonObject.getString("uid")); // 必传字段,需要验证uid是否合法,此字段必须是登陆后或者切换账号后保存的uid
|
||||
// if (isPayToBaidu) {
|
||||
// payOrderInfo.isPurchaseBaiduGoods = "true";
|
||||
// }
|
||||
BDGameSDK.pay(MainActivity.this, payOrderInfo, null,
|
||||
(resultCode, resultDesc, extraData) -> {
|
||||
// alertDialog.cancel();
|
||||
JSONObject obj = new JSONObject();
|
||||
try {
|
||||
obj.put("errcode", 0);
|
||||
obj.put("errmsg", "");
|
||||
nativeAndroid.callExternalInterface("payResult", obj.toString());
|
||||
obj.put("errcode", resultCode);
|
||||
String resultStr = "";
|
||||
switch (resultCode) {
|
||||
case ResultCode.PAY_SUCCESS: // 支付成功
|
||||
resultStr = "支付成功:" + resultDesc;
|
||||
break;
|
||||
case ResultCode.PAY_CANCEL: // 订单支付取消
|
||||
resultStr = "取消支付";
|
||||
break;
|
||||
case ResultCode.PAY_FAIL: // 订单支付失败
|
||||
resultStr = "支付失败:" + resultDesc;
|
||||
break;
|
||||
case ResultCode.PAY_SUBMIT_ORDER: // 订单已经提交,支付结果未知(比如:已经请求了,但是查询超时)
|
||||
resultStr = "订单已经提交,支付结果未知";
|
||||
break;
|
||||
default:
|
||||
resultStr = "订单已经提交,支付结果未知";
|
||||
break;
|
||||
}
|
||||
obj.put("errmsg", resultStr);
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
nativeAndroid.callExternalInterface("payResult", obj.toString());
|
||||
});
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
} catch ( Exception e ) {
|
||||
@ -230,6 +249,28 @@ public class MainActivity extends Activity {
|
||||
*/
|
||||
nativeAndroid.setExternalInterface("reportRoleInfo", message -> {
|
||||
Log.i(TAG, "Get reportRoleInfo: " + message);
|
||||
//
|
||||
// 上报玩家游戏角色信息Json串,格式为:{
|
||||
// "nick":"昵称",
|
||||
// "role":"角色名",
|
||||
// "region":"(游戏)大区",
|
||||
// "server":"(游戏)服",
|
||||
// "level":"角色等级",
|
||||
// "power":"玩家战力值"
|
||||
// }
|
||||
JSONObject data = new JSONObject();
|
||||
try {
|
||||
JSONObject obj = new JSONObject(message);
|
||||
data.put("nick", obj.getString("userRoleName"));
|
||||
data.put("role", obj.getString("userRoleName"));
|
||||
data.put("region", obj.getString("serverName"));
|
||||
data.put("server", obj.getString("serverId"));
|
||||
data.put("level", obj.getInt("userRoleLevel"));
|
||||
data.put("power", obj.getString("gameRolePower"));
|
||||
BDGameSDK.reportUserData(data.toString());
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -238,6 +279,12 @@ public class MainActivity extends Activity {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish() {
|
||||
super.finish();
|
||||
BDGameSDK.closeFloatView(this); // 关闭悬浮窗
|
||||
}
|
||||
|
||||
private void showLoadingView() {
|
||||
launchScreenImageView = new ImageView(this);
|
||||
launchScreenImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
@ -266,4 +313,120 @@ public class MainActivity extends Activity {
|
||||
launchScreenImageView = null;
|
||||
}
|
||||
|
||||
private void setSuspendWindowChangeAccountListener() { // 设置切换账号事件监听(个人中心界面切换账号)
|
||||
BDGameSDK.setSuspendWindowChangeAccountListener(MainActivity.this,
|
||||
(resultCode, resultDesc, extraData) -> {
|
||||
switch (resultCode) {
|
||||
case ResultCode.LOGIN_SUCCESS:
|
||||
// 登录成功,不管之前是什么登录状态,游戏内部都要切换成新的用户
|
||||
uid = BDGameSDK.getLoginUid();
|
||||
token = BDGameSDK.getLoginAccessToken();
|
||||
nativeAndroid.callExternalInterface("changeAccount", "");
|
||||
// 切换账号成功后必须更新uid给调用支付api使用
|
||||
// Toast.makeText(getApplicationContext(),
|
||||
// "登录成功",
|
||||
// Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
case ResultCode.LOGIN_FAIL:
|
||||
// 登录失败,游戏内部之前如果是已经登录的,要清除自己记录的登录状态,设置成未登录。如果之前未登录,不用处理。
|
||||
Toast.makeText(getApplicationContext(), "登录失败", Toast.LENGTH_LONG).show();
|
||||
if (null != uid && null != token) {
|
||||
uid = null;
|
||||
token = null;
|
||||
nativeAndroid.callExternalInterface("loginOut", "");
|
||||
}
|
||||
break;
|
||||
case ResultCode.LOGIN_CANCEL:
|
||||
// 取消,操作前后的登录状态没变化
|
||||
Toast.makeText(getApplicationContext(), "登录取消",
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
default:
|
||||
// 此时当登录失败处理,参照ResultCode.LOGIN_FAIL(正常情况下不会到这个步骤,除非SDK内部异常)
|
||||
Toast.makeText(getApplicationContext(), "登录失败",
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: 监听session失效时重新登录
|
||||
*/
|
||||
private void setSessionInvalidListener() {
|
||||
BDGameSDK.setSessionInvalidListener((resultCode, resultDesc, extraData) -> {
|
||||
if (resultCode == ResultCode.SESSION_INVALID) {
|
||||
// 会话失效,开发者需要重新登录或者重启游戏
|
||||
// login();
|
||||
nativeAndroid.callExternalInterface("loginOut", "");
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: 登录
|
||||
*/
|
||||
private void login() {
|
||||
if (null != uid && null != token) {
|
||||
JSONObject obj = new JSONObject();
|
||||
try {
|
||||
obj.put("openid", uid);
|
||||
obj.put("token", token);
|
||||
nativeAndroid.callExternalInterface("sendUidToJS", obj.toString());
|
||||
return;
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
BDGameSDK.login((resultCode, resultDesc, extraData) -> {
|
||||
Log.d("login", "this resultCode is " + resultCode);
|
||||
switch (resultCode) {
|
||||
case ResultCode.LOGIN_SUCCESS: {
|
||||
BDGameSDK.queryLoginUserAuthenticateState(
|
||||
getApplicationContext(), (resultCode1, resultDesc1, extraData1) -> {
|
||||
|
||||
Log.i("LoginUserAuth",
|
||||
"resultCode" + resultCode1 + "==" + extraData1);
|
||||
Log.i("login", BDGameSDK.getLoginAccessToken());
|
||||
Log.i("login", "login sucess");
|
||||
uid = BDGameSDK.getLoginUid();
|
||||
token = BDGameSDK.getLoginAccessToken();
|
||||
JSONObject obj = new JSONObject();
|
||||
try {
|
||||
obj.put("openid", uid);
|
||||
obj.put("token", token);
|
||||
// 如果其他登陆过程中的错误, 则传入一个大于0的errorcode
|
||||
nativeAndroid.callExternalInterface("sendUidToJS", obj.toString());
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
nativeAndroid.callExternalInterface("loginCancel", "");
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
break;
|
||||
case ResultCode.LOGIN_CANCEL: {
|
||||
nativeAndroid.callExternalInterface("loginCancel", "取消登陆");
|
||||
}
|
||||
break;
|
||||
case ResultCode.LOGIN_FAIL:
|
||||
default: {
|
||||
nativeAndroid.callExternalInterface("loginCancel", "登陆失败");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setAntiAddictionListener() {
|
||||
|
||||
// [必接]设置防沉迷系统回调,如果用户在线时长累计超过规定值,会触发该回调
|
||||
BDGameSDK.setAntiAddictionListener((resultCode, resultDesc, extraData) -> {
|
||||
//默认直接弹出游玩超时警告弹窗退出游戏,厂商也可以根据自己需要进行自己的防沉迷设计
|
||||
BDGameSDK.forceCloseDialog(MainActivity.this);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ public class WebApi {
|
||||
|
||||
public void getVersionInfo(BaseInterface iFace) {
|
||||
this.mInterface = iFace;
|
||||
// String versionUrl = "http://10.0.1.3:7021/game/zip/version.json";
|
||||
// String versionUrl = "https://test.kingsome.cn/wjtx/config/version_native.json";
|
||||
String versionUrl = "https://h5games-al.kingsome.cn/wjtx/config/version_native.json";
|
||||
AppRequestUtil.getInstance().getRequest(context, versionUrl, new RequestListener() {
|
||||
|
||||
|
@ -12,6 +12,7 @@ import org.json.JSONObject;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -187,12 +188,15 @@ public class AssetsUtil {
|
||||
*/
|
||||
public static String readFromFile(Context context, String path) {
|
||||
try {
|
||||
InputStreamReader inputReader = new InputStreamReader(context.openFileInput(path));
|
||||
FileInputStream fileInputStream = new FileInputStream(new File(path));
|
||||
InputStreamReader inputReader = new InputStreamReader(fileInputStream);
|
||||
BufferedReader bufReader = new BufferedReader(inputReader);
|
||||
|
||||
String line="";
|
||||
StringBuilder result= new StringBuilder();
|
||||
while((line = bufReader.readLine()) != null)
|
||||
result.append(line);
|
||||
fileInputStream.close();
|
||||
inputReader.close();
|
||||
bufReader.close();
|
||||
return result.toString();
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 351 KiB |
@ -3,7 +3,7 @@
|
||||
<string name="load_game">下载游戏资源</string>
|
||||
<string name="start_game">进入游戏</string>
|
||||
<string name="preload_path">preload</string>
|
||||
<string name="game_url">http://local/index.html?channel=7103</string>
|
||||
<string name="game_url">http://local/index.html?channel=7107</string>
|
||||
<string name="local_version">1.0.0</string>
|
||||
<string name="load_back">load_back</string>
|
||||
<string name="launch_version">获取游戏版本</string>
|
||||
|
4
app/src/main/res/xml/network_security_config.xml
Normal file
4
app/src/main/res/xml/network_security_config.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<network-security-config>
|
||||
<base-config cleartextTrafficPermitted="true" />
|
||||
</network-security-config>
|
BIN
key/publish_key
BIN
key/publish_key
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user