【WeLink开放平台】技术干货分享:轻应用如何快速转化为We码小程序

举报
Welink小达人 发表于 2020/04/09 11:21:11 2020/04/09
【摘要】 轻应用如何快速转化为We码小程序??快来看

区别

轻应用和We码小程序不同的有:

1、轻应用是通过 Web 的 url 地址访问的,而We码是通过 Welink App 根据 h5://${appId}/html/index.html 这种地址去加载离线化的We码小程序,可参考 plugin.json 中的 indexURL 格式。 而且引用JSAPI路径也不同。

2、轻应用的接口请求可以使用原生 js 的 xhr 或者 fetch 去请求,但在We码小程序里,由于安全问题,需统一走 HWH5.fetchInternet JSAPI。

3、相对轻应用,We码有更多的JSAPI可以调用。详细可参考We码小程序JSAPI总览。

4、轻应用部分JSAPI需要鉴权,而We码小程序不需要。

目录规范


创建We码程序,应严格按照以下规范进行创建目录和应用配置。

We码程序整个本地目录的结构如下:

├── /common/             // JSAPI公用文件目录。
   ├── /html/            // html文件
   ├── /js/              // JSAPI脚本文件
   ├── /css/             // 公共组件库样式文件
   ├── /assets/          // 资源目录
      ├── /images/  
      ├── /media/  
├── /apps/  
   ├── /应用1名称/         // 单独应用名称
      ├── /1/             // 版本号。打包时,只需打包版本号里面的文件。
         ├── /html/       // 应用html文件  
         ├── /js/         // 应用js文件  
         ├── /css/        // 样式文件
         ├── /assets/     // 资源目录
            ├── /images/  // 应用图片资源
            ├── /media/   // 应用媒体资源
         ├── plugin.json  // 应用配置文件
   ├── /应用2名称/         // 同上
      ├── /1/  
         ├── /html/  
         ├── /js/  
         ├── /css/  
         ├── /assets/  
            ├── /images/  
            ├── /media/  
         ├── plugin.json

单独应用包的目录结构

├── /html/  
├── /js/  
├── /css/  
├── /assets/  
   ├── /images/  
   ├── /media/  
├── plugin.json
目录结构说明
目录名称说明
html应用html组件
js应用js组件
css应用css组件
assets/images应用图片资源
assets/media应用媒体资源
plugin.json应用配置文件

修改点

针对以上,轻应用转化为We码小程序需修改以下几点:

1、需修改资源引用路径

轻应用打完包之后,是以静态资源的形式存在,所有的资源应用路径需以静态资源的方式引用。

引用路径

轻应用示例地址:http://example.com/html/index.html

内容如下:

<!-- 示例样式地址 --><script src="/app.css"></script><!-- 直接引用官方提供的hwh5-cloudonline.js,也可根据自己需要新建一个本地文件来引用--><script src="https://open-doc.welink.huaweicloud.com/docs/jsapi/2.0.3/hwh5-cloudonline.js"></script><!-- 您的业务逻辑代码,示例地址 --><script src="/app.js"></script>

需修改为引用相对地址:

<!-- 引入统一的css文件 --><link href="../../../../common/css/hwh5.css" rel="stylesheet" /><script src="./app.css"></script><!-- We码小程序JSAPI,层级引用可参考目录规范 --><script type="text/javascript" src="../../../../common/js/hwh5.js"></script><script src="./app.js"><script>

开发阶段建议引入 vConsole 脚本,方便输出日志调试,请参考 vConsole

提示:如果是单页面应用的话,只需要入口文件引用hwh5.js。如果是多页面应用,则需要每个页面都引用。

本地开发环境集成JSAPI

本地开发时,hwh5.js 可通过 npm 获取,在终端执行 npm install @wecode/wlk-jsapi,文件路径为 node_modules/@wecode/wlk-jsapi/lib/common

如果使用 webpack devServer 开发的,可将 @wecode/wlk-jsapi/lib/common 目录,复制至项目编译路径,示例如下:

const CopyPlugin = require('copy-webpack-plugin');const buildPath = './dist'; // 根据项目配置需要const ISLOCALDEV = process.env.NODE_ENV === 'development';const targetCommonPath = 'node_modules/@wecode/wlk-jsapi/lib/common';const buildCommonPath = `${buildPath}/common`;const targetPluginPath = './plugin.json';const buildPluginPath = `${buildPath}/plugin.json`;module.exports = {
  plugins: [    new CopyPlugin([      // 本地开发复制common路径
      ISLOCALDEV && { from: targetCommonPath, to: buildCommonPath },      // 复制根目录的plugin.json至编译完之后的目录
      !ISLOCALDEV && { from: targetPluginPath, to: buildPluginPath }
    ].filter(Boolean)),
  ]
};

请求方式

需要把请求都改造成 HWH5.fetchInternet 请求。

删除鉴权代码

We码中无鉴权,可删除相关鉴权的接口。

配置 wecode.json

在项目根目录中,新增 wecode.json 文件。

wecode.json 格式如下:

{    "distPath": "./dist"}

distPath 指在当前项目路径下需要上传到we码平台的相对目录,可配置为编译完之后的路径。

当使用IDE使用的预览或者上传功能时,distPath 指定的目录将会打包上传,弹出二位码之后,即可扫码体验。

配置 plugin.json

distPath 指定的相对目录必须存在 plugin.json 文件。

包内必须包含plugin.json,描述当前We码包的信息,plugin.json不可有注释信息

  {    "indexURL":"h5://20180531174400036/html/index.html",    "appId":"20180531174400036",    "minSdkVersionName":"1.0.23",    "versionName":"v1.0.0"
  }
字段说明
indexURL九宫格和应用商店的默认入口地址 URL格式:h5://appId/html路径/index.html
appIdWe码小程序的唯一识别ID
minSdkVersionNamejs sdk基础库的版本号,表示We码只能在该基础库对应的WeLink及以上版本可用,基础库版本与WeLink版本对应关系
versionName版本号。此版本号是为了方便管理员检查版本使用的,开发者可以根据自己的实际要求来填写

h5://appId/ 目录里的文件即 wecode.json 中配置 distPath 的目录文件。

appId: 为新创建 we 码的 appId,可到“我的应用”中查询。

注意: appId 与 indexURL的隐藏关系,URL格式:h5://appId/html路径/index.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。