SAP UI5 barcode 控件的 feature 检查探测机制单步调试 - checkCordovaInIframe

举报
Jerry Wang 发表于 2022/11/06 15:01:41 2022/11/06
【摘要】 第 170 行 checkCordovaInIframe 是检测 Cordova API 在 iframe 里的可用性,这里可以忽略。oCordovaScannerAPI 默认为 null.进入 getFeatureAPI 分支:这里试图从 cordova.plugins.barcodeScanner 获取 oCordovaScannerAPI.因为我没有安装,所以这个 API 不可用:进入...

第 170 行 checkCordovaInIframe 是检测 Cordova API 在 iframe 里的可用性,这里可以忽略。

oCordovaScannerAPI 默认为 null.

进入 getFeatureAPI 分支:

这里试图从 cordova.plugins.barcodeScanner 获取 oCordovaScannerAPI.
因为我没有安装,所以这个 API 不可用:

进入异常处理函数,进行 getZXingAPI 的 fallback 处理:

Kapsel 是一组插件,可通过简化登录到 SMP 3.0 服务器、OData 调用的离线访问、更新已部署应用程序的能力、加密存储和推送通知等功能来增强 Apache Cordova。

SAP Fiori Client 围绕 Apache Cordova 架构设计,其中设备 API 和自定义功能通过插件添加。

下表显示了 SAP Fiori Client 1.8(iOS、Android 和 Windows)中包含的插件。

如果开发人员使用 SAP Mobile Platform SDK(仅限 iOS 和 Android)随附的 create_fiori_client.js 脚本构建自定义 SAP Fiori 客户端,这些插件会自动添加到项目中。

要在适用于 Windows 10 的自定义 SAP Fiori 客户端中使用 Cordova 插件,您必须在插件和适用于 Windows 10 的自定义 Fiori 客户端之间创建一个 API 桥

在 Windows 上,Cordova 应用程序基本上是一个 HTML5 应用程序。 因此,应用程序没有原生端,并且没有任何东西在 index.html 层下运行。 插件中的 Windows 特定代码是用 JavaScript 编写的,并与跨平台 JavaScript API 作为代理 API 一起初始化。

对于 SAP Fiori 客户端,index.html 页面是本机端容器。它包括 cordova.js 并初始化 Cordova 插件。 index.html 中有一个 webview 元素 (x-ms-webview),它打开了远程 Fiori 应用程序。

index.html 页面和远程 Fiori 应用程序(webview 中的网页)是两个完全不同的上下文,具有不同的 DOM 和 窗口”对。一个上下文无法访问另一个上下文的命名空间。因此,无法直接从 webview 访问本地上下文中先前初始化的插件。

这个问题在其他平台上通过将 cordova.js 注入远程网页(在主原生 web 视图中打开)、初始化 JavaScript Cordova API 并获得对已经初始化的原生端的访问来解决。

在 Windows 上将 Cordova 注入远程 Fiori 应用程序是不可能的,因为出于安全原因,不允许远程页面访问某些 Windows API。这意味着 Fiori 应用程序无法访问任何 Cordova 插件。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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