@lingxiteam/engine-mobile
v1.0.9-beta.4
Published
灵犀低代码平台-app引擎包
Downloads
657
Maintainers
Keywords
Readme
使用方法
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版本 集成方式
- 在入口文件处增加基础配置,示例如下
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; // 是否忽略内置组件注册
}
- 路由拦截处合并路由, 例如:基于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();
}
}
- 开启路由保活(KeepAlive)。 示例:基于Alita框架
import { getKeepAlive } from '@lingxiteam/engine-mobile';
// 需要在config.ts中开启keepalive选项
export {
getKeepAlive
}
- 自定义部分信息回调函数
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);
}
}
}