diff --git a/Data/js/main.js b/Data/js/main.js
index 05e1a28..fd7a4ff 100644
--- a/Data/js/main.js
+++ b/Data/js/main.js
@@ -2,42 +2,41 @@ console.log(">>begin load wallet main file");
function promiseCb(funId, promiseFun, dataParser) {
dataParser = dataParser || ((v) => v);
- promiseFun.then((result) => {
- jsb.jcCallback(funId, JSON.stringify({ errcode: 0, data: result }));
- })
- .catch((err) => {
- jsb.jcCallback(funId, JSON.stringify({ errcode: 1, errmsg: err }));
- });
+ promiseFun
+ .then((result) => {
+ jsb.jcCallback(funId, JSON.stringify({ errcode: 0, data: result }));
+ })
+ .catch((err) => {
+ jsb.jcCallback(funId, JSON.stringify({ errcode: 1, errmsg: err }));
+ });
}
/**
* init wallet, must call this before all other method
* @param {string} type: wallet type, 0: internal wallet, 1: third party wallet
-
+ * @param {string} chain: chain type, 1: ETH, 2: ICON
+ * @param {string} channel: channel type, 0: google, 1: apple, 2: tiktok, 3: facebook, 4: twitter
*/
-function initWallet(funId, type, chain, channel, test) {
- type = parseInt(type);
+function initWallet(funId, type, chain, channel = 0) {
chain = parseInt(chain);
- channel = channel || 0; // 0:google, 1: apple, 2: tiktok
- channel = parseInt(channel);
console.log(
`initWallet:: type: ${type}, chain: ${chain}, channel: ${channel}`
);
try {
- let wallet;
- if (!window.jc || !jc.wallet) {
- wallet = new jcwallet.default({ chain, type });
- } else {
- wallet = jc.wallet;
- }
- type = parseInt(type);
- if (type === 1) {
+ const wallet =
+ !window.jc || !jc.wallet
+ ? new jcwallet.default({ chain, type })
+ : jc.wallet;
+
+ if (parseInt(type) === 1) {
console.log("wallet init success, begin connect");
wallet
.initThirdPartyWallet()
.then(() => {
console.log("walletconnect connect success");
- let account = jc.wallet.currentAccount();
- jsb.jcCallback(funId, JSON.stringify({ errcode: 0, data: account }));
+ jsb.jcCallback(
+ funId,
+ JSON.stringify({ errcode: 0, data: jc.wallet.currentAccount() })
+ );
})
.catch((err) => {
console.log("walletconnect connect error: " + JSON.stringify(err));
@@ -45,11 +44,13 @@ function initWallet(funId, type, chain, channel, test) {
});
} else {
wallet
- .initInternalWallet(channel)
+ .initInternalWallet(parseInt(channel))
.then(() => {
console.log("internal init success");
- let address = jc.wallet.nativeAccount;
- jsb.jcCallback(funId, JSON.stringify({ errcode: 0, data: address }));
+ jsb.jcCallback(
+ funId,
+ JSON.stringify({ errcode: 0, data: jc.wallet.nativeAccount })
+ );
})
.catch((err) => {
console.log("internal wallet error: " + JSON.stringify(err));
@@ -131,7 +132,7 @@ function getEthBalance(funId, account) {
*/
function sendEth(funId, to, amount, estimate) {
estimate = (estimate || "0") | 0;
- promiseCb(funId, jc.wallet.sendEth(to, amount, estimate))
+ promiseCb(funId, jc.wallet.sendEth(to, amount, estimate));
}
/**
@@ -197,7 +198,10 @@ function sendErc1155(funId, address, to, tokenIds, amounts, estimate) {
tokenIds = JSON.parse(tokenIds);
amounts = JSON.parse(amounts);
estimate = (estimate || "0") | 0;
- promiseCb(funId, jc.wallet.sendErc1155(address, to, tokenIds, amounts, estimate));
+ promiseCb(
+ funId,
+ jc.wallet.sendErc1155(address, to, tokenIds, amounts, estimate)
+ );
}
function showQRCode(funId, content) {
@@ -212,7 +216,7 @@ function showQRCode(funId, content) {
function showWebPage(funId, url) {
try {
jsb.showWebPage(funId, url);
-// jsb.openURL(url);
+ // jsb.openURL(url);
return JSON.stringify({ errcode: 0, data: 1 });
} catch (err) {
return JSON.stringify({ errcode: 1, errmsg: err });
@@ -238,12 +242,16 @@ function buyNft721(funId, addresses, values, signature, estimate) {
addresses = JSON.parse(addresses);
values = JSON.parse(values);
estimate = (estimate || "0") | 0;
- promiseCb(funId, jc.wallet.jcStandard.buyNft721({
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.buyNft721({
addresses,
values,
signature,
estimate,
- }), (v)=>JSON.stringify(v));
+ }),
+ (v) => JSON.stringify(v)
+ );
}
function buyNft1155(
@@ -261,15 +269,18 @@ function buyNft1155(
amounts = JSON.parse(amounts);
estimate = (estimate || "0") | 0;
- promiseCb(funId, jc.wallet.jcStandard
- .buyNft1155({
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.buyNft1155({
addresses,
values,
ids,
amounts,
signature,
estimate,
- }), (v)=>JSON.stringify(v));
+ }),
+ (v) => JSON.stringify(v)
+ );
}
function evolveNft721(
@@ -283,30 +294,34 @@ function evolveNft721(
) {
tokenIds = JSON.parse(tokenIds);
estimate = (estimate || "0") | 0;
- promiseCb(funId,
- jc.wallet.jcStandard
- .evolve721NFT({
- nftAddress,
- tokenIds,
- startTime,
- nonce,
- signature,
- estimate,
- }), (v)=>JSON.stringify(v));
-}
-
-function evolveChip(funId, tokenIds, startTime, nonce, signature, estimate) {
- tokenIds = JSON.parse(tokenIds);
- estimate = (estimate || "0") | 0;
- promiseCb(funId,
- jc.wallet.jcStandard
- .evolveChip({
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.evolve721NFT({
+ nftAddress,
tokenIds,
startTime,
nonce,
signature,
estimate,
- }), (v)=>JSON.stringify(v));
+ }),
+ (v) => JSON.stringify(v)
+ );
+}
+
+function evolveChip(funId, tokenIds, startTime, nonce, signature, estimate) {
+ tokenIds = JSON.parse(tokenIds);
+ estimate = (estimate || "0") | 0;
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.evolveChip({
+ tokenIds,
+ startTime,
+ nonce,
+ signature,
+ estimate,
+ }),
+ (v) => JSON.stringify(v)
+ );
}
function mintShardBatchUser(
@@ -321,16 +336,18 @@ function mintShardBatchUser(
tokenIds = JSON.parse(tokenIds);
amounts = JSON.parse(amounts);
estimate = (estimate || "0") | 0;
- promiseCb(funId,
- jc.wallet.jcStandard
- .mintShardBatchUser({
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.mintShardBatchUser({
tokenIds,
amounts,
startTime,
nonce,
signature,
estimate,
- }), (v)=>JSON.stringify(v));
+ }),
+ (v) => JSON.stringify(v)
+ );
}
function shardMixByUser(
@@ -349,9 +366,9 @@ function shardMixByUser(
ids = JSON.parse(ids);
amounts = JSON.parse(amounts);
estimate = (estimate || "0") | 0;
- promiseCb(funId,
- jc.wallet.jcStandard
- .shardMixByUser({
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.shardMixByUser({
tokenId,
nftType,
payToken,
@@ -362,7 +379,9 @@ function shardMixByUser(
nonce,
signature,
estimate,
- }), (v)=>JSON.stringify(v));
+ }),
+ (v) => JSON.stringify(v)
+ );
}
// addresses: [nftId, chip, sign_address]
@@ -382,16 +401,18 @@ function pluginChip(
values = JSON.parse(values);
chipIds = JSON.parse(chipIds);
slots = JSON.parse(slots);
- promiseCb(funId,
- jc.wallet.jcStandard
- .pluginChip({
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.pluginChip({
addresses,
values,
chipIds,
slots,
signature,
estimate,
- }), (v)=>JSON.stringify(v));
+ }),
+ (v) => JSON.stringify(v)
+ );
}
// addresses: [nftId, chip, sign_address]
@@ -411,16 +432,18 @@ function unplugChip(
chipIds = JSON.parse(chipIds);
slots = JSON.parse(slots);
estimate = (estimate || "0") | 0;
- promiseCb(funId,
- jc.wallet.jcStandard
- .unplugChip({
+ promiseCb(
+ funId,
+ jc.wallet.jcStandard.unplugChip({
addresses,
values,
chipIds,
slots,
signature,
estimate,
- }), (v)=>JSON.stringify(v));
+ }),
+ (v) => JSON.stringify(v)
+ );
}
// ======= end of interact with contract =======
@@ -430,7 +453,7 @@ function ethHistory(funId, start, limit) {
}
function tokenHistory(funId, start, limit, address, tokenId) {
- var data = {start, limit, address, tokenId}
- promiseCb(funId, jc.wallet.historySvr.tokenRecords(data))
+ var data = { start, limit, address, tokenId };
+ promiseCb(funId, jc.wallet.historySvr.tokenRecords(data));
}
// ======= end of transaction history =======
diff --git a/app/AndroidManifest.xml b/app/AndroidManifest.xml
index d7ab832..be403cb 100644
--- a/app/AndroidManifest.xml
+++ b/app/AndroidManifest.xml
@@ -48,6 +48,9 @@
+
diff --git a/app/src/com/cege/games/release/MainActivity.java b/app/src/com/cege/games/release/MainActivity.java
index aded9a2..e9b2309 100644
--- a/app/src/com/cege/games/release/MainActivity.java
+++ b/app/src/com/cege/games/release/MainActivity.java
@@ -1,6 +1,7 @@
package com.cege.games.release;
import android.Manifest;
+import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -13,6 +14,8 @@ import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.Window;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
import android.widget.Toast;
import com.bytedance.sdk.open.tiktok.TikTokOpenApiFactory;
@@ -121,7 +124,6 @@ public class MainActivity extends UnityPlayerActivity
private String oid;
private QRCodeActivity qrCodeActivity;
- private WebPageActivity webPageActivity;
// AppAuth
private AuthorizationService mAuthService;
@@ -876,13 +878,12 @@ public class MainActivity extends UnityPlayerActivity
}
}
- public void showPage(String fid, String url) {
+ public void showPage(String fid, final String url) {
runOnUiThread(() -> {
- if (webPageActivity == null) {
- webPageActivity = new WebPageActivity(getContext());
- }
- webPageActivity.showWebPage(url);
- webPageActivity.show();
+ Log.i(TAG, "show page: " + url);
+ Intent intent = new Intent(this, WebPageActivity.class);
+ intent.putExtra("url", url);
+ startActivity(intent);
});
}
diff --git a/app/src/com/cege/games/release/activity/WebPageActivity.java b/app/src/com/cege/games/release/activity/WebPageActivity.java
index 777d9e6..261c6d2 100644
--- a/app/src/com/cege/games/release/activity/WebPageActivity.java
+++ b/app/src/com/cege/games/release/activity/WebPageActivity.java
@@ -1,21 +1,103 @@
package com.cege.games.release.activity;
-import android.app.Dialog;
+import android.annotation.SuppressLint;
+import android.app.Activity;
import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.util.Log;
+import android.webkit.ConsoleMessage;
+import android.webkit.CookieManager;
+import android.webkit.WebChromeClient;
+import android.webkit.WebResourceError;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebSettings;
import android.webkit.WebView;
-public class WebPageActivity extends Dialog {
+import android.webkit.WebViewClient;
- public WebPageActivity(Context context) {
- super(context);
+import com.cege.games.release.R;
+import com.cege.games.release.dialog.BaseDialog;
+
+public class WebPageActivity extends Activity {
+ private WebView mWebView;
+ private static final String TAG = WebPageActivity.class.getSimpleName();
+
+ @SuppressLint("SetJavaScriptEnabled")
+ @Override
+ protected void onCreate(android.os.Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_web_page);
+ WebView.setWebContentsDebuggingEnabled(true);
+ mWebView = findViewById(R.id.web_view);
+ WebSettings webSettings = mWebView.getSettings();
+ webSettings.setJavaScriptEnabled(true);
+ webSettings.setDomStorageEnabled(true);
+ webSettings.setDatabaseEnabled(true);
+ webSettings.setAllowContentAccess(true);
+ webSettings.setAppCacheEnabled(true);
+ webSettings.setBuiltInZoomControls(true);
+ webSettings.setUseWideViewPort(true);
+ webSettings.setLoadWithOverviewMode(true);
+ webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+ CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView,true);
+ // get url from intent
+ Intent intent = getIntent();
+ String url = intent.getStringExtra("url");
+ // show web view
+ mWebView.loadUrl(url);
+ mWebView.setWebChromeClient(new WebChromeClient() {
+ @Override
+ public void onReceivedTitle(WebView view, String title) {
+ super.onReceivedTitle(view, title);
+ Log.i(TAG, "onReceivedTitle: " + title);
+ }
+
+ @Override
+ public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
+ Log.e("TAG", consoleMessage.message());
+ return true;
+ }
+
+ });
+ mWebView.setWebViewClient(new WebViewClient() {
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
+ return super.shouldOverrideUrlLoading(view, request);
+ // if ("www.example.com".equals(request.getUrl().getHost())) {
+ // // This is my website, so do not override; let my WebView load the page
+ // return false;
+ // }
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ super.onPageFinished(view, url);
+ Log.i(TAG, "onPageFinished: " + url);
+ }
+ @Override
+ public void onLoadResource(WebView view, String url) {
+ Log.i(TAG, "onLoadResource: " + url);
+ }
+
+ @Override
+ public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
+ super.onReceivedError(view, request, error);
+ Log.e(TAG, "onReceivedError: " + error);
+ }
+
+ @Override
+ public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
+ super.onReceivedHttpError(view, request, errorResponse);
+ Log.e(TAG, "onReceivedHttpError: " + errorResponse);
+ }
+
+ @Override
+ public void onReceivedSslError(WebView view, android.webkit.SslErrorHandler handler,
+ android.net.http.SslError error) {
+ Log.e(TAG, "onReceivedSslError: " + error.toString());
+ }
+ });
}
- // show web view
- public void showWebPage(String url) {
- WebView webView = new WebView(getContext());
- setContentView(webView);
-
- webView.loadUrl(url);
-
- show();
- }
}
diff --git a/app/src/main/res/layout/activity_web_page.xml b/app/src/main/res/layout/activity_web_page.xml
new file mode 100644
index 0000000..cc92db2
--- /dev/null
+++ b/app/src/main/res/layout/activity_web_page.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+