core
    正在准备搜索索引...

    接口 Ymx

    ymx Core

    interface Ymx {
        coreVersion: string;
        isAndroid: boolean;
        isHarmony: boolean;
        isIos: boolean;
        chooseMedia(data: ChooseMediaData): Promise<ChooseMediaResult>;
        clearStorage(): Promise<void>;
        downloadFile(data: DownloadFileData): Promise<DownloadFileResult>;
        exit(): Promise<void>;
        getDeclaredPermissions(): Promise<DeclaredPermissionsResult>;
        getLayout(): Promise<Layout>;
        getNavigationBar(): Promise<NavigationBar>;
        getScreenOrientation(): Promise<ScreenOrientation>;
        getStatusBar(): Promise<StatusBar>;
        getStorage(data: StorageKey): Promise<StorageResult>;
        getStorageInfo(): Promise<StorageInfoResult>;
        getTheme(): Promise<Theme>;
        getTitleBar(): Promise<TitleBar>;
        hasPermissionDeclared(
            permission: PermissionData,
        ): Promise<PermissionDeclaredResult>;
        hasPermissionGranted(permission: PermissionData): Promise<PermissionResult>;
        hideLoading(): Promise<void>;
        hideToast(): Promise<void>;
        openPermissionSetting(
            permissions: PermissionsData,
        ): Promise<PermissionsResult>;
        removeStorage(data: StorageKey): Promise<void>;
        request(data: RequestData): Promise<RequestResult>;
        requestPermission(
            permission: RequestPermissionData,
        ): Promise<PermissionResult>;
        requestPermissions(
            permissions: RequestPermissionsData,
        ): Promise<PermissionsResult>;
        requirePlugin(pluginId: string): object;
        setLayout(layout: Layout): Promise<void>;
        setNavigationBar(navigationBar: NavigationBar): Promise<void>;
        setScreenOrientation(screenOrientation: ScreenOrientation): Promise<void>;
        setStatusBar(statusBar: StatusBar): Promise<void>;
        setStorage(data: StorageData): Promise<void>;
        setTheme(theme: Theme): Promise<void>;
        setTitleBar(titleBar: TitleBar): Promise<void>;
        showActionSheet(data: ShowActionSheetData): Promise<ShowActionSheetResult>;
        showLoading(data: ShowLoadingData): Promise<void>;
        showModal(data: ShowModalData): Promise<ShowModalResult>;
        showToast(data: ShowToastData): Promise<void>;
        uploadFile(data: UploadFileData): Promise<UploadFileResult>;
    }

    层级 (查看层级一览)

    索引

    属性

    coreVersion: string

    ymx 内核版本,如 1.2.3

    isAndroid: boolean

    是否运行在 Android 环境中

    isHarmony: boolean

    是否运行在 HarmonyOS 环境中

    isIos: boolean

    是否运行在 iOS 环境中

    方法

    • 拍摄或从手机相册中选择图片或视频

      参数

      返回 Promise<ChooseMediaResult>

      ymx.chooseMedia({
      // 相册
      sourceType: ['album'],
      // 选一个
      count: 1,
      mediaType: ['image'],
      }).then(res => {
      alert(JSON.stringify(res));
      });
      ymx.chooseMedia({
      // 相册
      sourceType: ['album'],
      // 选 3 个
      count: 3,
      mediaType: ['image'],
      }).then(res => {
      alert(JSON.stringify(res));
      });
      ymx.chooseMedia({
      // 拍照
      sourceType: ['camera'],
      // 后置摄像头
      camera: 'back',
      mediaType: ['image'],
      }).then(res => {
      alert(JSON.stringify(res));
      });
      ymx.chooseMedia({
      // 拍照
      sourceType: ['camera'],
      // 前置摄像头
      camera: 'front',
      mediaType: ['video'],
      }).then(res => {
      alert(JSON.stringify(res));
      });
    • 清理本地数据缓存

      返回 Promise<void>

      ymx.clearStorage().then(() => {
      alert('success');
      });
    • 退出应用

      返回 Promise<void>

      ymx.exit();
      
    • 从本地缓存中异步获取指定 key 的内容

      参数

      返回 Promise<StorageResult>

      ymx.getStorage({
      key: 'key1'
      }).then(res => {
      alert(res.data);
      });
      ymx.getStorage({
      key: 'key2'
      }).then(res => {
      alert(JSON.stringify(res.data));
      });
    • 隐藏 loading 提示

      返回 Promise<void>

      ymx.hideLoading();
      
    • 隐藏吐司提示

      返回 Promise<void>

      ymx.hideToast();
      
    • 从本地缓存中移除指定 key

      参数

      返回 Promise<void>

      ymx.removeStorage({
      key: 'key1'
      }).then(() => {
      alert('success');
      });
    • 网络请求

      参数

      返回 Promise<RequestResult>

      ymx.request({
      url: 'https://www.yimenapp.com/doc/echo2',
      method: 'POST',
      data: {
      key1: 'value 1',
      hello: '世界'
      }
      }).then(res => {
      alert(JSON.stringify(res));
      }).catch((err) => {
      alert(`request error: ${JSON.stringify(err)}`);
      });
      ymx.request({
      url: 'https://www.yimenapp.com/doc/echo2',
      method: 'GET'
      }).then(res => {
      alert(JSON.stringify(res));
      }).catch((err) => {
      alert(`request error: ${JSON.stringify(err)}`);
      });
    • 构建插件 js API 接口实例

      此接口返回 object 类型,为获得接口类型验证和智能提示,请按如下操作:

      • 安装插件的 TypeScript 接口类型定义包,以 ymx-wechat 插件为例
      npm install --save @ymxjs/ymx-wechat
      
      • 将 requirePlugin 返回值强制转换为插件的对应类型 YmxWechat
      const wechat = ymx.requirePlugin('ymx-wechat') as YmxWechat;
      // 至此,调用 wechat 下的接口即可获得开发环境类型验证和智能提示
      // wechat.login...

      参数

      • pluginId: string

        插件 ID

      返回 object

    • 设置布局选项

      参数

      返回 Promise<void>

    • 将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。

      参数

      返回 Promise<void>

      ymx.setStorage({
      key: 'key1',
      data: 'value 1'
      }).then(() => {
      alert('success');
      });
      ymx.setStorage({
      key: 'key2',
      data: {
      name: '张三',
      age: 26
      }
      }).then(() => {
      alert('success');
      });
    • 设置主题

      参数

      返回 Promise<void>

    • 显示 loading 提示

      参数

      返回 Promise<void>

      ymx.showLoading({
      title: '加载中...',
      mask: true
      });
    • 吐司提示

      参数

      返回 Promise<void>

      ymx.showToast({
      title: 'hello world',
      duration: 2000
      });
    • 上传文件

      参数

      返回 Promise<UploadFileResult>

      // 选文件
      ymx.chooseMedia({
      sourceType: ['album'],
      mediaType: ['image'],
      count: 1
      }).then(choose => {
      // 上传
      ymx.uploadFile({
      url: 'https://www.yimenapp.com/doc/echo2',
      filePath: choose.tempFiles[0].tempFilePath
      }).then(res => {
      alert(JSON.stringify(res));
      }).catch((uploadErr) => {
      alert(`upload error: ${JSON.stringify(uploadErr)}`);
      });
      }).catch((chooseErr) => {
      alert(`choose error: ${JSON.stringify(chooseErr)}`);
      });