diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 223130a..fc4a151 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -13,7 +13,7 @@
-
+
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index a5f05cd..64d3775 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -21,5 +21,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c2d8139..e0fb3b1 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -15,7 +15,7 @@
-
+
diff --git a/app/AndroidManifest.xml b/app/AndroidManifest.xml
index de03a42..b6df756 100644
--- a/app/AndroidManifest.xml
+++ b/app/AndroidManifest.xml
@@ -69,6 +69,10 @@
+
+
@@ -118,4 +122,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 593b08c..58eeae9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -139,4 +139,5 @@ dependencies {
implementation 'com.android.volley:volley:1.2.1'
implementation 'org.greenrobot:eventbus:3.0.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+ implementation 'com.bytedance.ies.ugc.aweme:opensdk-oversea-external:0.2.1.0'
}
\ No newline at end of file
diff --git a/app/src/com/cege/games/release/MainActivity.java b/app/src/com/cege/games/release/MainActivity.java
index 9b2bf81..d1f1f1a 100644
--- a/app/src/com/cege/games/release/MainActivity.java
+++ b/app/src/com/cege/games/release/MainActivity.java
@@ -18,6 +18,9 @@ import android.view.MotionEvent;
import android.view.Window;
import android.widget.Toast;
+import com.bytedance.sdk.open.tiktok.TikTokOpenApiFactory;
+import com.bytedance.sdk.open.tiktok.api.TikTokOpenApi;
+import com.bytedance.sdk.open.tiktok.authorize.model.Authorization;
import com.cege.games.release.activity.CustomCaptureActivity;
import com.cege.games.release.dialog.QRCodeActivity;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
@@ -118,6 +121,10 @@ public class MainActivity extends Activity
private CountDownLatch mAuthIntentLatch = new CountDownLatch(1);
private static final String EXTRA_FAILED = "failed";
+ public String getFunId() {
+ return funId;
+ }
+
@NonNull
private final BrowserMatcher mBrowserMatcher = AnyBrowserMatcher.INSTANCE;
@@ -804,7 +811,21 @@ public class MainActivity extends Activity
}
@MainThread
private void verifyGoogleIDToken(String idToken) {
- JcSDK.googleOauthCb(this.funId, null, idToken);
+ JcSDK.oauthCb(this.funId, null, idToken);
+ }
+
+ // sign with tiktok
+ public void signWithTiktok(String funId) {
+ this.funId = funId;
+ Log.i(TAG, "login with tiktok: " + funId);
+// STEP 1: Create an instance of TiktokOpenApi
+ TikTokOpenApi tiktokOpenApi= TikTokOpenApiFactory.create(this);
+
+// STEP 2: Create an instance of Authorization.Request and set parameters
+ Authorization.Request request = new Authorization.Request();
+ request.scope = "user.info.basic,video.list";
+ request.state = funId;
+ tiktokOpenApi.authorize(request);
}
diff --git a/app/src/com/cege/games/release/MainApplication.java b/app/src/com/cege/games/release/MainApplication.java
index 65a992d..8b76aeb 100644
--- a/app/src/com/cege/games/release/MainApplication.java
+++ b/app/src/com/cege/games/release/MainApplication.java
@@ -3,6 +3,9 @@ package com.cege.games.release;
import android.app.Application;
import android.content.SharedPreferences;
+import com.bytedance.sdk.open.tiktok.TikTokOpenApiFactory;
+import com.bytedance.sdk.open.tiktok.TikTokOpenConfig;
+
public class MainApplication extends Application {
public static MainApplication application;
public static SharedPreferences _pref;
@@ -11,5 +14,7 @@ public class MainApplication extends Application {
super.onCreate();
application = this;
_pref = getSharedPreferences(Constants.PREF_NAME, 0);
+ String tiktokClientKey = "awqbuzh2qymmq8hs";
+ TikTokOpenApiFactory.init(new TikTokOpenConfig(tiktokClientKey));
}
}
diff --git a/app/src/com/cege/games/release/tiktokapi/TikTokEntryActivity.java b/app/src/com/cege/games/release/tiktokapi/TikTokEntryActivity.java
new file mode 100644
index 0000000..259d965
--- /dev/null
+++ b/app/src/com/cege/games/release/tiktokapi/TikTokEntryActivity.java
@@ -0,0 +1,50 @@
+package com.cege.games.release.tiktokapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+
+import com.bytedance.sdk.open.tiktok.TikTokOpenApiFactory;
+import com.bytedance.sdk.open.tiktok.api.TikTokOpenApi;
+import com.bytedance.sdk.open.tiktok.authorize.model.Authorization;
+import com.bytedance.sdk.open.tiktok.common.handler.IApiEventHandler;
+import com.bytedance.sdk.open.tiktok.common.model.BaseReq;
+import com.bytedance.sdk.open.tiktok.common.model.BaseResp;
+import com.jc.jcfw.JcSDK;
+
+import androidx.annotation.Nullable;
+
+public class TikTokEntryActivity extends Activity implements IApiEventHandler {
+ private static final String TAG = TikTokEntryActivity.class.getSimpleName();
+ TikTokOpenApi ttOpenApi;
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ ttOpenApi= TikTokOpenApiFactory.create(this);
+ ttOpenApi.handleIntent(getIntent(),this); // receive and parse callback
+ }
+ @Override
+ public void onReq(BaseReq req) {
+ }
+ @Override
+ public void onResp(BaseResp resp) {
+ if (resp instanceof Authorization.Response) {
+ Authorization.Response response = (Authorization.Response) resp;
+// Log.i(TAG, "errorCode: " + response.errorCode);
+// Log.i(TAG, "errorMsg: " + response.errorMsg);
+// Log.i(TAG, "authCode: " + response.authCode);
+// Log.i(TAG, "state: " + response.state);
+// Log.i(TAG, "grantedPermissions: " + response.grantedPermissions);
+ if (response.errorCode == 0) {
+ JcSDK.oauthCb(response.state, null, response.authCode);
+ } else {
+ JcSDK.oauthCb(response.state, response.errorMsg, null);
+ }
+ finish();
+ }
+ }
+ @Override
+ public void onErrorIntent(@Nullable Intent intent) {
+ JcSDK.oauthCb(null, "error intent", null);
+ }
+}
diff --git a/app/src/com/jc/jcfw/JcSDK.java b/app/src/com/jc/jcfw/JcSDK.java
index 6bb7ee5..13373ff 100644
--- a/app/src/com/jc/jcfw/JcSDK.java
+++ b/app/src/com/jc/jcfw/JcSDK.java
@@ -76,6 +76,10 @@ public class JcSDK {
MainActivity.app.loadRestoreKey(funid, oid);
}
+ public static void signWithTiktok(String funid) {
+ MainActivity.app.signWithTiktok(funid);
+ }
+
public static void signWithGoogle(String funid) {
MainActivity.app.signWithGoogle(funid);
}
@@ -84,7 +88,7 @@ public class JcSDK {
MainActivity.app.signOutGoogle(funid);
}
- public static void googleOauthCb(String funId, String error, String idToken) {
+ public static void oauthCb(String funId, String error, String idToken) {
JSONObject result = new JSONObject();
try {
if (error != "" && null != error) {
@@ -97,7 +101,10 @@ public class JcSDK {
} catch (JSONException e) {
e.printStackTrace();
}
-
+ if (null == funId || "".equals(funId)) {
+ funId = MainActivity.app.getFunId();
+ }
+ Log.i("TAG" ,result.toString());
String methodName = "jniCallback";
JcSDK.runJS(funId, methodName, result.toString());
}
diff --git a/build.gradle b/build.gradle
index 1746a3d..8c92f82 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,6 +4,7 @@ buildscript {
repositories {
google()
jcenter()
+ maven { url "https://artifact.bytedance.com/repository/AwemeOpenSDK" }
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.1"
@@ -17,6 +18,7 @@ allprojects {
repositories {
google()
jcenter()
+ maven { url "https://artifact.bytedance.com/repository/AwemeOpenSDK" }
flatDir {
dirs 'libs'
}
diff --git a/js/wallet.js b/js/wallet.js
index 0b3c4ed..859360c 100644
--- a/js/wallet.js
+++ b/js/wallet.js
@@ -1,4 +1,4 @@
function jniCallback(...args) {
- console.log(`jniCallback: ${args[0]}`)
- jc.wallet.nativeSvr.handleNativeCallback(...args);
-}
\ No newline at end of file
+ console.log(`jniCallback: ${args[0]} | ${args[1]}`);
+ jc.wallet.nativeSvr.handleNativeCallback(...args);
+}