如何将无影云应用集成到Web页面中?

本文涉及的产品
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑个人版,1个月黄金款+200核时
简介: 本文基于无影云应用现有能力,为场景化集成需求客户提供清晰便捷的API接入指导。面向希望将无影云应用集成到Web&小程序中、向用户提供快速应用云化服务的开发者。在真实案例中,已实现1小时demo上线官网。

本文基于无影云应用现有能力,为场景化集成需求客户提供清晰便捷的API接入指导。面向希望将无影云应用集成到Web&小程序中、向用户提供快速应用云化服务的开发者。在真实案例中,已实现1小时demo上线官网。

本文作者为无影产研团队

一、相关介绍

无影云应用是一种基于公有云托管的应用程序虚拟化流式传输服务,实现了多生态应用免部署、快速构建、即点即用,能够为您提供安全、易用、高效且低成本的云上应用管理与使用体验。

image.png

无影云应用提供一站式的PaaS平台云化移植的应用虚拟环境,仅需轻量二次开发,即可实现传统应用上云和全端快速交付,该文档为梳理无影云应用API接入指引流程。

image.png

最终实现效果:

案例一:云钉一体

通过无影接入传统大型软件生态,实现钉钉中快速打开大型设计应用及钉盘文件读写,创新协同办公场景

云钉一体演示.gif

案例二:无影云应用在线实训方案demo

通过Web集成方式,实现基于云应用的在线互动实训方案,有效提升学员线上学习效果

二、云应用创建与镜像制作流程

1)云应用创建--->2)镜像制作

2.1 创建云应用

通过无影云应用控制台上传应用信息,创建云应用,发起验证流程,无影相关同学将在后台验证应用适配情况,并及时返回验证结果。详情见如下链接:https://help.aliyun.com/document_detail/426044.html

2.2 制作镜像

通过无影云应用控制台为已创建的云应用发起镜像制作流程,无影相关同学在后台为用户制作镜像并完成相关配置,及时返回制作结果。详情见如下链接:https://help.aliyun.com/document_detail/426045.html

PS:后续也将提供API的形式来实现上述创建过程。

三、接入方API调起云应用流程

1)创建交付组 ---> 2)创建用户 ---> 3)资源授权 ---> 4)获取访问令牌 ---> 5)打开应用

三、流程说明

3.1 创建交付组

交付组是无影向终端用户交付云应用的逻辑分组,包括底层依赖的云应用资源、包含云应用的镜像、资源管理策略等。

通过无影API创建交付组,具体API参考:https://help.aliyun.com/document_detail/428505.html

此步骤也可以通过控制台进行创建。

3.2 创建便捷用户

便捷用户是无影专用的账号体系,作为简单场景下使用无影云桌面或无影云应用的主体身份。

通过无影API创建便捷用户,具体API参考:https://help.aliyun.com/document_detail/283607.html

建议企业维护自己的账号体系与无影便捷用户之间的映射关系。

此步骤也可以通过控制台进行创建。

3.3 便捷用户授权或取消授权

客户通过无影API管理便捷用户与应用的授权关系,便捷用户只能打开被授权交付组中所包含的应用,具体API参考:https://help.aliyun.com/document_detail/428508.html

此步骤也可以通过控制台进行操作。

3.4 获取便捷用户身份令牌

后续打开云应用时,SDK需要使用包含便捷用户身份信息的令牌与无影云应用服务进行交互。

无影云应用服务会提供API,该API仅需要AK,SK,便捷用户ID即可生成一个受限的令牌,该令牌专门用于第三方集成的场景。

SDK

<dependency> <groupId>com.aliyun.inner</groupId> <artifactId>appstream_center20210218</artifactId> <version>1.0.1</version> </dependency>

API

接口名称:GetStsToken

接口类型:OpenAPI,ak sk调用

请求参数

名称

类型

是否必填

备注

Action

String

API名称

ExternalId

String

外部用户ID,在一个阿里云账号下唯一

返回值

名称

类型

备注

RequestId

String

请求ID

SessionId

String

会话ID

StsToken

String

受限令牌

3.5 打开云应用

使用SDK打开云应用时,需要传递一些参数给SDK。

必传参数

  • 便捷用户身份凭证:LoginToken,SessionId(上述第3.4步中获取,StsToken可作为LoginToken传递)

  • 要打开的应用信息:AppId,AppVersion

要打开的应用信息有两种获取方式:

  • 通过API:ListPublishedAppInfo

  • 在控制台创建完应用后,保存相应的应用信息

可选参数

  • 交付组ID:AppInstanceGroupId

  • 文件信息:待定

传递交付组ID参数时,会使用该交付组的资源打开应用;传递文件信息时,会使用目标应用打开文件。

将上述信息拼接成如下的URL:

https://wuying.aliyun.com/appStream?

LoginToken=${loginToken}&SessionId=${SessionId}&AppId=${AppId}&AppVersion=${AppVersion}

&AppInstanceGroupId=${AppInstanceGroupId}&xxx=${xxx}

访问该URL即可打开云应用。

后续也将提供原生JavaScript的SDK,可以在前端资源中直接引入使用。

3.6 打开云应用(另一种方式)

无影云应用提供了另外一种打开云应用的方式,这种方式在上述3.5中增加了一个步骤,即在拼接URL之前首先调用如下API:

接口名称:GetConnectionTicket

接口类型:OpenAPI

请求参数

名称

类型

是否必填

备注

Action

String

API名称

ProductType

String

固定值:CloudApp

LoginToken

String

身份令牌

SessionId

String

会话ID

AppId

String

应用ID

AppVersion

String

应用版本

AppInstanceGroupId

String

交付组ID

返回值(成功)

名称

类型

备注

RequestId

String

请求ID

TaskId

String

连接任务ID

TaskStatus

String

连接任务状态

Ticket

String

连接令牌

RegionId

String

地域

返回值(失败)

名称

类型

备注

RequestId

String

请求ID

Code

String

错误码

Message

String

错误信息

通过上述API获取TaskId和RegionId,然后将这两个参数拼接在3.5给出的URL后(其他参数不变),访问URL打开云应用。

这种方式的优点在于通过该API可以获取连接中的一些异常错误信息,便于第三方能够对打开失败的场景进行一些额外处理。如交付组资源不足时(APP_INSTANCE_GROUP_IS_FULL),可以提示用户等待。

四、重点API梳理

API接入无影云应用,接入方需从四个模块来更好使用和管理云应用资源

4.1 资源初始化

接口名称

接口功能

备注

CreateAppInstanceGroup

创建交付组

接口创建交付组需要付费,可以设置自动付费避免手动支付订单

ListAppInstanceGroup

查询交付组详细信息

查看交付组状态是否发布成功

AuthorizeInstanceGroup

为交付组添加分配用户

可以批量授权用户,授权后,交付组发布成功后,等待2分钟,可以再端上看到云应用

4.2 资源管理

接口名称

接口功能

备注

ModifyAppInstanceGroupAttribute

修改交付组策略

修改交付组策略

UpdateAppInstanceGroupImage

更新交付组镜像

更新镜像

4.3 资源使用

接口名称

接口功能

备注

AuthorizeInstanceGroup

为交付组移除分配用户

可以批量取消授权用户,取消授权后,等待2分钟,同步到端上显示

4.4 资源销毁

本期版本是包年包月模式,不支持API方式销毁资源,需要提工单退费删除。

接口名称

接口功能

备注

AuthorizeInstanceGroup

为交付组移除分配用户

可以批量取消授权用户,取消授权后,等待2分钟,同步到端上显示

五、API接口列表

5.1 地域相关接口

接口名称

接口功能

ListRegions

查询支持的地域

5.2 资源相关接口

接口名称

接口功能

ListNodeInstanceType

查询资源规格

GetResourcePrice

查询购买资源订单的详细信息

5.3 交付组相关接口

接口名称

接口功能

CreateAppInstanceGroup

创建交付组

ListAppInstanceGroup

查询交付组详细信息

ModifyAppInstanceGroupAttribute

修改交付组策略

AuthorizeInstanceGroup

为交付组添加或移除分配用户

PageListAppInstanceGroupUser

分页查询交付组的分配用户

RenewAppInstanceGroup

为交付组续费

UpdateAppInstanceGroupImage

更新交付组镜像

5.4 端侧相关接口

接口名称

接口功能

GetConnectionTicket

端上获取链接

ListPublishedAppInfo

查询应用列表

ListRunningApps

查询运行中应用列表

StopApp

停止应用

5.5 端侧登录接口

接口名称

接口功能

GetLoginToken

获取登录凭证

RefreshLoginToken

刷新登录凭证

5.6 用户管理接口(无影用户服务SDK提供)

接口名称

接口功能

CreateUsers

创建一个或者多个便捷用户

DescribeUsers

查询便捷用户信息

FilterUsers

按用户属性筛选查询便捷用户信息

RemoveUsers

删除一个或者多个便捷用户

ResetUserPassword

重置便捷用户的密码,包括生成重置密码Token,并发送重置密码邮件到便捷用户的邮箱

LockUsers

锁定一个或者多个便捷用户

UnlockUsers

解锁一个或者多个便捷用户

六、参考材料

6.1 无影云应用介绍文档

https://help.aliyun.com/document_detail/426033.html

6.2 无影云应用控制台操作指南

https://help.aliyun.com/document_detail/426043.html

6.3 无影云应用基本概念

https://help.aliyun.com/document_detail/426037.html

相关文章
|
4月前
|
JSON API 数据处理
Winform管理系统新飞跃:无缝集成SqlSugar与Web API,实现数据云端同步的革新之路!
【8月更文挑战第3天】在企业应用开发中,常需将Winform桌面应用扩展至支持Web API调用,实现数据云端同步。本文通过实例展示如何在已有SqlSugar为基础的Winform系统中集成HTTP客户端调用Web API。采用.NET的`HttpClient`处理请求,支持异步操作。示例包括创建HTTP辅助类封装请求逻辑及在Winform界面调用API更新UI。此外,还讨论了跨域与安全性的处理策略。这种方法提高了系统的灵活性与扩展性,便于未来的技术演进。
259 2
|
2月前
|
编解码 前端开发 JavaScript
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
58 2
|
2月前
|
存储 缓存 安全
如何使用 PHP 将天气跟踪集成到 Web 应用程序中
如何使用 PHP 将天气跟踪集成到 Web 应用程序中
32 0
|
3月前
|
存储
在 Web 中判断页面是不是刷新
【9月更文挑战第10天】在Web开发中,判断页面是否刷新有多种方法:1) 监听`popstate`事件,检测用户是否通过历史记录访问页面;2) 记录并比较页面加载时间戳,若相差极小,则可能为刷新;3) 利用本地存储设置特定值,若该值不存在或不符合预期,则页面可能被刷新。然而,这些方法并非绝对准确。
188 3
|
4月前
|
开发框架 前端开发 Java
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
【8月更文挑战第12天】SpringBootWeb极速入门-实现一个简单的web页面01
74 3
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
html,web页面朗读文字,朗读中文,朗读英文
html,web页面朗读文字,朗读中文,朗读英文
|
4月前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
54 1
|
4月前
|
数据处理 开发者 UED
FastAPI 的模板引擎简直太神奇啦!这就是构建动态 Web 页面的终极秘籍,快来一探究竟!
【8月更文挑战第31天】FastAPI 是一款高性能异步 Web 框架,可通过集成模板引擎(如 Jinja2 或 Mako)实现动态页面渲染。使用模板引擎可分离页面结构与数据,简化代码并提升可维护性。此外,它还提供丰富的语法支持,如循环和条件判断,从而增强页面展示效果及开发效率。通过简单的配置步骤,即可在 FastAPI 中启用模板引擎,显著改善用户体验。
340 1
|
4月前
|
存储 消息中间件 前端开发
Web2py框架下的神秘力量:如何轻松集成第三方API,让你的应用不再孤单!
【8月更文挑战第31天】在开发现代Web应用时,常需集成第三方服务如支付网关、数据存储等。本文将指导你使用Web2py框架无缝接入第三方API。通过实例演示从注册获取API密钥、创建控制器、发送HTTP请求到处理响应的全过程。利用`requests`库与Web2py的内置功能,轻松实现API交互。文章详细介绍了如何编写RESTful控制器,处理API请求及响应,确保数据安全传输。通过本教程,你将学会如何高效整合第三方服务,拓展应用功能。欢迎留言交流心得与建议。
52 1
|
4月前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
55 1