1.0.10-alpha.8 • Published 1 year ago

@lingxiteam/engine-mobile-1 v1.0.10-alpha.8

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

使用方法

1、 lcdpApi 发送请求 拦截器 全局配置方法配置方法如下:

  import { lcdpApi } from 'lingxiteam/engine-mobile';

  const request = lcdpApi.fetch;

  const uploadRequest = lcdpApi.fetch;

  request.interceptors.request.use((url, options) => {
    return {
      url: `${url}&interceptors=yes`,
      options: { ...options, interceptors: true },
    };
  });

  request.interceptors.response.use((response, options) => {
    response.headers.append('interceptors', 'yes yo');
    return response;
  });

lcdpApi.fetch导出的是umi-request。具体使用方法可参考:umi-request

2、 更新用户信息

lcdpApi.setData('user', userInfo);

>6.30版本 集成方式

  1. 在入口文件处增加基础配置,示例如下
import { initBasicConfig } from '@lingxiteam/engine-mobile';
import { history, setPageNavBar } from 'alita'

// 设置基础配置(内置组件注册,注入history/setPageNavBar/apis/工具类等)  opts参数如下介绍:
initBasicConfig(opts);

// opts 类型定义
export interface InitialBasicConfig {
  history: any, // 路由管理
  setPageNavBar?: any; // 设置页面导航
  ignoreRegisterComponent?: boolean;  // 是否忽略内置组件注册
}
  1. 路由拦截处合并路由, 例如:基于UMI框架的项目可以到app.ts文件下的render、patchRoutes方法拦截处理

import { beforeRender } from '@lingxiteam/engine-mobile';

let dRoutes: any[] = [];
export function patchRoutes({ routes }: any) {
  let targetRoutes = merge(routes, dRoutes);
  routes[0].routes = targetRoutes;
}

export async function render(oldRender: () => void) {
  try {
    // 返回具体的路由列表
    dRoutes = await renderBefore();
    oldRender();
  } catch(err) {
    oldRender();
  }
}
  1. 开启路由保活(KeepAlive)。 示例:基于Alita框架
import { getKeepAlive } from '@lingxiteam/engine-mobile';

// 需要在config.ts中开启keepalive选项

export {
  getKeepAlive
}
  1. 自定义部分信息回调函数
import { lcdpApi, queryDynamicRoutesService } from '@lingxiteam/engine-mobile';


lcdpApi.handleMessage = {
  login: {
    success: () => {  /*内置登录成功*/ },
    updateRoutes: async (routes: any[], next: (arg0: any[]) => void) => {
      // 登录完成后需要合并路由
      const dynamicRoutes = await queryDynamicRoutesService();
      const targetRoutes = merge(routes, dynamicRoutes);
      routes[0].routes = targetRoutes;
      next(routes);
    }
  },
  auth: {
    fail: () => {
      /* 验证失败 */
    },
    success: (e) => {
      /* 校验成功 */
      const { loginInfo = {} } = e?.resultObject;
      lcdpApi.setData('user', loginInfo || {});
      // 需要更新用户信息
    }
  },
  page: {
    onListener(e){
      console.log("每次页面刷新会触发该回调", e);
    }    
  }
}