diff --git a/src/JCWallet.d.ts b/src/JCWallet.d.ts index e17eb20..e59d4a8 100644 --- a/src/JCWallet.d.ts +++ b/src/JCWallet.d.ts @@ -14,7 +14,8 @@ declare namespace jc { declare namespace jsb { export function walletSign(str: string); - export function loadLocalStorage(key: string); + export function loadLocalStorage(key: string): string; + export function saveLocalStorage(key: string, val: string); export function signWithGoogle(id: number); export function signWithApple(id: number); export function signWithTikTok(id: number); @@ -33,6 +34,10 @@ declare namespace jsb { export function walletDecrypt(str: string): string; export function beginBuy(id: number, productId: string, orderId: string): string; export function queryPurchase(id: number): string; + export function getClientId(id: number); + export function passStorageState(id: number, account: string); + export function storagePass(id: number, account: string, pass: string); + export function authGetStoragePass(id: number, key: string); export function queryProducts(id: number, str: string): string; export function finishTransaction(id: number, str: string); export function walletSecKey(id: string, openid: string, key_master: string, salt: string, pass: string): string; diff --git a/src/api/WalletApi.ts b/src/api/WalletApi.ts index 1669f73..823e548 100644 --- a/src/api/WalletApi.ts +++ b/src/api/WalletApi.ts @@ -26,6 +26,11 @@ export function twitterAuth(idToken: string) { return POST_JSON(url, { code: idToken }); } +export function clientAuth(idToken: string) { + const url = `${WALLET_API_HOST}/wallet/login/client`; + return POST_JSON(url, { code: idToken }); +} + export function getWalletInfo() { const url = `${WALLET_API_HOST}/wallet/info`; return GET_JSON(url); diff --git a/src/index.ts b/src/index.ts index 48aa108..a16a6b7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -104,7 +104,19 @@ export default class JCWallet { } } - public preLogin(channel: number) { + public get platform() { + // @ts-ignore + if (window.JavascriptJavaBridge) { + console.log('regist android jsb.reflection'); + return 'android'; + // @ts-ignore + } else if (window.JavaScriptObjCBridge) { + return 'ios'; + } + } + + public preLogin(channel: number, env: string = 'dev') { + this.env = env; return walletPreLogin(channel); } @@ -500,6 +512,16 @@ export default class JCWallet { await syncWalletEnv(); return {}; } + + public saveLocalItem(key: string, value: string) { + jsb.saveLocalStorage(key, value); + } + + public loadLocalItem(key: string) { + let val = jsb.loadLocalStorage(key); + console.log('loadLocalItem:: ' + val); + return val; + } } // window.jc = window.jc || {wallet: new JCWallet()}; diff --git a/src/lib/Http.ts b/src/lib/Http.ts index 9a91da1..d7ab62e 100644 --- a/src/lib/Http.ts +++ b/src/lib/Http.ts @@ -11,6 +11,7 @@ export function request(url, option) { } headers.append('api_version', VERSION_CODE + ''); headers.append('api_env', jc.wallet.env); + headers.append('api_platform', jc.wallet.platform); let optionInt: any = { method: 'GET', mode: 'cors', diff --git a/src/manage/WalletManage.ts b/src/manage/WalletManage.ts index 8a95078..2e77712 100644 --- a/src/manage/WalletManage.ts +++ b/src/manage/WalletManage.ts @@ -4,6 +4,7 @@ import { loadMnemonic, saveMnemonic } from './DataManage'; import { NativeSvr } from '../services/NativeSvr'; import { appleAuth, + clientAuth, facebookAuth, getWalletInfo, googleAuth, @@ -69,6 +70,10 @@ export async function walletPreLogin(channel: number) { let res: any = await new NativeSvr().signWithTwitter(); window.debug && console.log('native twitter res: ' + res); tokenRes = await twitterAuth(res); + } else if (channel == 10) { + let res: any = await new NativeSvr().clientLogin(); + console.log('native client res: ' + res); + tokenRes = await clientAuth(res); } else { let res: any = await new NativeSvr().signWithGoogle(); window.debug && console.log('native google res: ' + res); diff --git a/src/services/NativeSvr.ts b/src/services/NativeSvr.ts index 6c12fcc..fe4e1c2 100644 --- a/src/services/NativeSvr.ts +++ b/src/services/NativeSvr.ts @@ -99,4 +99,28 @@ export class NativeSvr { jsb.finishTransaction(id, transactionId); return this._subscribeToCallResponse(id); } + + public authGetStoragePass(key: string) { + let id = payloadId(); + jsb.authGetStoragePass(id, key); + return this._subscribeToCallResponse(id); + } + + public passStorageState(key: string) { + let id = payloadId(); + jsb.passStorageState(id, key); + return this._subscribeToCallResponse(id); + } + + public storagePass(key: string, pass: string) { + let id = payloadId(); + jsb.storagePass(id, key, pass); + return this._subscribeToCallResponse(id); + } + + public clientLogin() { + let id = payloadId(); + jsb.getClientId(id); + return this._subscribeToCallResponse(id); + } }