开发

增加宿主配置

  • 宿主配置的目录结构如下
1
2
3
4
5
6
7
8
├── hostName                               // 宿主名称,开源平台的hostname,也是package.json的name字段
├── program
├── package.json // 配置
├── config.js // 入口文件
└── simulator-extensions
├── simulator-extensions-1 // 模拟器扩展一
└── simulator-extensions-2 // 模拟器扩展二

  • ${hostName}/program/ 目录下新建 package.json 文件,填写你的宿主配置。
    hostName 使用在百度注册的 hostname,package.json 的配置如下
{
  "name": "demo",    // 开源平台的hostname    
  "appName": "示例APP",   // 宿主切换是展示的名称 
  "version": "1.0.0",     // 配置版本号
  "minSwanNativeVersion": "2.0.0",    // 支持的最低sdk版本
  "maxSwanNativeVersion": "2.2.1",   //  支持的最高sdk版本
  "main": "config.js"   //  入口文件
}
  • ${hostName}/program/ 目录下 package.json 的 main 入口文件内导出下列方法
/**
 * 获取宿主 extensionJs 版本区间
 *
 * @param {string} swanJsVersion 当前 swanJs 版本号
 * @param {string} swanNativeVersion 当前 swanNative 版本号
 * @return {string} extensionJs semver表达式,用于更新和选择的筛选
 */
exports.getExtensionJsRange = ({swanJsVersion, swanNativeVersion}) => {
    return '^1.0.0';
};


/**
 * 获取宿主app版本号
 *
 * @param {Object=} versions 版本信息
 * @param {string} versions.swanJsVersion 当前 swanJs 版本号
 * @param {string} versions.swanNativeVersion 当前 swanNative 版本号
 * @param {string} versions.extensionJsVersion 当前 extensionJs 版本号
 * @return {string} hostAppVersion 宿主app版本号
 */
exports.getHostAppVersion = (versions) => {
    return '13.0.0';
};

/**
 * 非必填,获取宿主 app useragent 的后缀
 *
 * @param {Object} versions 同上
 * @return {string} suffix useragent 后缀
 */
exports.getUserAgentSuffix = (versions) => {
    return 'suffix'
};


/**
 * 非必填,获取宿主自定义设备
 *
 * @return {Object} devices 设备信息
 */
exports.getDevices = () => {
    // isProfiledScreen 是否是异形屏,其余参数和getsystemInfo一致
    return {
        'che': {
            'model': 'che',   
            'pixelRatio': 2,
            'system': 'android 7.0.1',  
            'screenWidth': 800,
            'screenHeight': 400,
            'isProfiledScreen': false
        }
    };
};