0.0.10 • Published 5 years ago

maro-rn v0.0.10

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

直接把 ts 文件黏贴上来吧,api 名称与小程序相同

declare const Maro: {
  // 【核心 API】
  request: (params: Param) => Promise<any>;
  chooseImage: () => Promise<File>; // 选择图片
  previewImage: (OBJECT: { current?: string; urls: string[] }) => Promise<any>; // 预览图片
  uploadFile: (OBJECT: { url: string; filePath: any; name: string; header?: any; formData?: any;}) => Promise<any>;
  getStorage: (key: string) => Promise<string>; // 读 localStorage
  setStorage: (key: string, value: string) => Promise<void>; // 写 localStorage
  removeStorage: (key: string) => Promise<void>; // 删 localStorage
  clearStorage: () => Promise<void>; // 清除 localStorage
  store: any; // 数据共享
  eventCenter: {
    // 观察者
    on: (key: string, fn: Function) => void;
    off: (key: string) => void;
    trigger: (key: string) => void;
    emit: (key: string) => void;
  };

  // 【地图相关】
  setAMapKeys: (webkey: string, apikey: string) => void; // 设置高德地图的 key,请在调用后续方法之前,先调用该方法初始化 key
  getLocation: () => Promise<{ longitude: number; latitude: number }>; // 获取用户当前 gps
  getPoiByLoc: (params: {
    longitude: number;
    latitude: number;
  }) => Promise<any>; // 地址解析
  getLocByPoi: (keywords: string) => Promise<any>; // 逆地址解析
  searchAround: (params: {
    latitude: number;
    longitude: number;
    radius: number;
    keywords?: string;
  }) => Promise<any>; // 搜索周边 POI
  searchKeyword: (params: {
    city?: string | number;
    county?: string | number;
    keywords: string;
  }) => Promise<any>; // 搜索关键词(可指定某个区域)

  // 【ui相关】与小程序 api 一致
  showModal: (OBJECT: showModalType.Param) => Promise<showModalType.Promised>;
  showLoading: (OBJECT?: { title: string; mask?: boolean }) => Promise<any>;
  showToast: (OBJECT: toastType) => Promise<any>;
  showActionSheet: (OBJECT: ActionSheet.Param) => Promise<ActionSheet.Promised>;
  hideLoading: () => void;
  hideToast: () => void;
};

type Param<P extends any | string | ArrayBuffer = any> = {
  url: string;
  data?: P;
  header?: {
    "content-type"?: string;
    "Content-Type"?: string;
    token?: string;
    [k: string]: any;
  };
  method?:
    | "OPTIONS"
    | "GET"
    | "HEAD"
    | "POST"
    | "PUT"
    | "DELETE"
    | "TRACE"
    | "CONNECT";
  dataType?: string;
  responseType?: string;
  mode?: "no-cors" | "cors" | "same-origin";
  credentials?: "include" | "same-origin" | "omit";
  cache?: "default" | "no-cache" | "reload" | "force-cache" | "only-if-cached";
  timeout?: number;
};

declare namespace showModalType {
  type Promised = {
    confirm: boolean;
    cancel: boolean;
  };
  type Param = {
    title?: string;
    content: string;
    showCancel?: boolean;
    cancelText?: string;
    cancelColor?: string;
    confirmText?: string;
    confirmColor?: string;
  };
}

declare namespace ActionSheet {
  type Promised = {
    tapIndex: number;
  };
  type Param = {
    itemList: string[];
    itemColor?: string;
  };
}

type toastType = {
  title: string;
  icon?: "success" | "loading" | "none";
  image?: string;
  duration?: number;
  mask?: boolean;
};

export default Maro;