import { NativeModules, Platform, PlatformIOS } from 'react-native'; const ctx = NativeModules.AppContextReactNative; /** * 儲存 1campus 的使用者資訊。 */ export interface UserInfo { /** * 名稱。 */ name: string; /** * 帳號。 */ account: string; } /** * 取得目前應用程式相關資訊。 */ export class AppContext { /** * 取得目前登入使用者名稱與帳號。 */ static getCurrentUser(): Promise { return new Promise((resolve, reject) => { ctx.getCurrentUser((user) => { if (Platform.OS === "ios") { resolve(user); } else { resolve(JSON.parse(user)); } }); }) } /** * 取得目前登入的 DSNS。 */ static getDSNS(): Promise { return new Promise((r, j) => { ctx.getDSNS((dsns) => { r(dsns); }); }); } /** * 關閉目前已開啟的模組。 */ static close(): Promise { return new Promise((r, j) => { ctx.close(() => { r(); }); }); } }