
# 将开发的应用发布成移动端小程序
华为云Astro轻应用的应用设计器，提供了一站式移动应用设置和发布体验。应用开发者进行移动端设置后，应用服务可以在移动App容器内被用户便捷地访问与传播。
本章节以将应用发布到OneMobile为例，向您介绍在华为云Astro轻应用中如何将应用发布成移动端应用。
#### 开启小程序模式
开发者将当前应用发布为移动端应用需要先在移动端设置中开启小程序模式。开启后则支持开发者在发布操作时，将当前应用发布为对应的移动端小程序。若在移动端设置中关闭了小程序模式，则不支持开发者发布生成移动端应用。
1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，登录应用设计器。
2. 在左侧导航栏中，选择"设置"，进入应用设置页面。
3. 选择"移动端设置"，开启小程序模式。 
   图1开启小程序模式   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001901968886.png "点击放大")
   
   
4. 开启小程序模式后，在"多端发布设置"中，勾选应用支持发布的小程序。
 
#### 将应用发布到OneMobile
将应用中的标准页面和高级页面，发布到华为OneMobile，需要输入华为OneMobile的用户名和密码或扫码进行授权登录。选择该方式发布后，在华为OneMobile上可生成应用程序二维码，扫码后按照提示可体验该应用。
1. 华为云Astro轻应用的小程序包发布到OneMobile后，在OneMobile中访问时，首先要做免登逻辑的处理，这样会获取到华为云Astro轻应用的访问Token，在后续的请求中会携带此Token请求业务数据。 
   有两种方式实现免登逻辑，若两种方式都已配置，优先方式一的处理逻辑：
   - 方式一：开发者自己实现免登接口，即通过在BO或者应用中开发服务编排来获取访问华为云Astro轻应用的Token，再将服务编排封装为免登接口，使用此方式后，可以给每个业务用户设置相应的权限，用权限控制是否可访问华为云Astro轻应用业务接口。
     1. 开发脚本，脚本中调用业务用户查询详情接口，获取到业务用户信息，查询该业务用户是否存在于华为云Astro轻应用中。
        - 如果存在，获取到业务用户详情。
        
        - 如果不存在，创建一个业务用户。
         
     
     2. 开发服务编排，调用登录接口（使用服务编排中的公式实现），获取Token。
     
     3. 封装服务编排为免登接口，即华为OneMobile小程序免登录请求URL。
     
     4. 在承载服务接口的华为云Astro轻应用相应环境的环境配置中，配置内置系统参数"token_url_in_shinemo"，即华为OneMobile小程序免登录请求URL。
        在华为云Astro轻应用相应环境的环境配置页面左侧，选择"系统设置 \> 系统参数"，选择"内置系统参数"页签。参考[表1]，配置"token_url_in_shinemo"。
         表1"token_url_in_shinemo"参数说明 
        | 参数                   | 说明                                                                                                                                                                                                                        |
        |:---|:---|
        | token_url_in_shinemo | 华为OneMobile小程序免登录请求URL，即[1.c]封装服务编排的接口URL。 该参数值为华为OneMobile小程序，获取华为云Astro轻应用access-token的请求URL。如果不配置，在华为OneMobile中打开小程序时，会因为业务请求没携带access-token而报错。 |
           
        
      
   
   - 方式二：使用华为云Astro轻应用预置的免登逻辑，在承载服务接口的华为云Astro轻应用相应环境的环境配置中配置免登信息即可。
     1. 在华为云Astro轻应用服务控制台，单击"进入首页"，进入应用开发页面。
     
     2. 单击页面左上角的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001988261794.png)，选择"环境管理 \> 环境配置"，进入环境配置页面。
     
     3. 在左侧导航栏中，选择"集成连接 \> 统一身份认证"。
     
     4. 在预置认证中，单击"OneMobile"图标，配置"小程序环境"、"App Key"和"App Secret"。
        图2设置绑定OneMobile参数   
        ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936099341.png) 
     
     5. 设置完成后，单击"绑定OneMobile"，最多只支持绑定10个OneMobile。
      
   
   
   
   

2. 参考[快速发布与部署华为云Astro轻应用开发的应用](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9012.html)中操作，将应用一键打包发布到运行环境或沙箱环境。
3. 发布应用并登录开发者平台。 
   1. 在应用设计器上方选择"发布"，单击"生成移动应用"。
   
   2. 在生成移动端应用中，选择"华为OneMobile小程序"，进入选择华为OneMobile环境页面。
   
   3. 在页面中，选择待登录的OneMobile环境，单击"确认"，进入开发者平台登录页面。 若当前无环境，可单击"新增环境"，新增小程序环境（当前版本最多只能添加10个OneMobile环境）。
      ![](https://support.huaweicloud.com/usermanual-astrozero/public_sys-resources/note_3.0-zh-cn.png)
      华为云Astro轻应用作为OneMobile小程序开发工具，可将开发好的小程序一键发布到OneMobile开放平台。华为云Astro轻应用和OneMobile之间，通过OAUTH2协议打通认证，绑定开发者账号。当前开发工具和开放平台之间的集成为系统级集成，开放平台提供"clientId/clientSecret"作为工具的认证凭证，工具通过该凭证操作开放平台数据，如查询某个开发者创建了哪些应用、推送哪些小程序包等。
      OneMobile当前为非云化独立部署，每个环境凭证有所不同，请联系OneMobile侧各个环境运维人员，获取sync-contact服务中与IDE相关的配置。
      图3新增OneMobile环境   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001980771313.png) 
   
   4. 在开发者平台登录页面，输入账号、密码和校验码后，单击"登录"。
   
   5. 将应用中的标准页面和高级页面，发布到华为OneMobile。
      表2发布到"华为OneMobile"参数说明 
      | 参数              | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                  |
      |:---|:---|
      | 小程序名称           | 选择要发布到华为OneMobile上的应用名。                                                                                                                                                                                                                                                                                                                                                                                                             |
      | 主页              | 打开华为OneMobile小程序时，默认展示的页面。                                                                                                                                                                                                                                                                                                                                                                                                          |
      | 环境类型            | 承载应用程序服务的华为云Astro轻应用环境类型，如"开发环境"、"运行环境"和"沙箱"。                                                                                                                                                                                                                                                                                                                                                                                       |
      | 运行环境/沙箱域名       | 设置运行环境/沙箱的环境域名。当"环境类型"配置为"运行环境"或"沙箱"时，该参数才需要配置。                                                                                                                                                                                                                                                                                                                                                                                     |
      | 运行环境/沙箱租户ID     | 设置运行环境/沙箱环境的租户ID，配置后，小程序运行时会在请求头自动添加租户ID。获取方法如下： 1. 登录运行环境/沙箱环境。  2. 在环境配置页面的左侧导航栏中，选择"系统设置 \> 公司信息"。  3. 在公司信息中，即可获取到"租户ID"。   |
      | 开启调试            | 是否开启调试功能，当应用在华为OneMobile上运行时，是否开启vConsole调试功能。开启后，可在华为OneMobile该应用上，单击"vConsole"，查看日志。                                                                                                                                                                                                                                                                                                                                              |
      | 启用js编译器         | 当打包应用内有高级页面时，才会显示该参数。开启后，会将高级页面引用的插件和资源进行JS编译，使代码规范化。                                                                                                                                                                                                                                                                                                                                                                               |
      | 高级设置 \> 导航栏显示方式 | 在小程序中展示时，是否显示导航栏。                                                                                                                                                                                                                                                                                                                                                                                                                   |
         
      
   
   
   
   
4. 在OneMobile小程序容器管理后台，发布小程序。 
   1. 登录OneMobile小程序容器管理后台，上传要发布的小程序包。
   
   2. 在小程序上传成功后，单击待提交审核小程序版本号后展示的"二维码"，扫描二维码，下载小程序进行预览。
   
   3. 单击已上传小程序后的"提交审核"，提交发布审核。 审核通过后，即可使用或测试该小程序。
      
   
   
   
   
 
#### 相关文档
- [将华为云Astro轻应用中的应用发布成WeLink轻应用](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0001.html)
- [将华为云Astro轻应用中的应用发布成WeLink We码应用](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0007.html)
- [将华为云Astro轻应用中的应用发布到微信小程序](https://support.huaweicloud.com/bestpractice-astrozero/astrozero_bestpractice_0002.html)
 
