line170checkCordovaInIframe是检测iframe中CordovaAPI的可用性,这里可以忽略。oCordovaScannerAPI默认为空。进入getFeatureAPI的分支:这里我尝试从cordova.plugins.barcodeScanner获取oCordovaScannerAPI。因为我没有安装,所以没有这个API:进入异常处理函数,进行getZXingAPI的fallback处理:Kapsel是一组可以通过Apache访问的插件Cordova增强了简化登录SMP等功能3.0服务器、OData调用的离线访问、更新已部署应用程序的能力、加密存储和推送通知。SAPFioriClient围绕ApacheCordova架构设计,其中设备API和自定义功能通过插件添加。下表显示了SAPFioriClient1.8(iOS、Android和Windows)中包含的插件。如果开发人员使用SAPMobilePlatformSDK中包含的create_fiori_client.js脚本构建自定义SAPFiori客户端(仅限iOS和Android),这些插件会自动添加到项目中。要在Windows10的自定义SAPFiori客户端中使用Cordova插件,您必须在插件和Windows10的自定义Fiori客户端之间创建一个API桥。在Windows上,Cordova应用程序基本上是一个HTML5应用程序。因此,应用程序没有原生端,index.html层下没有运行任何东西。插件中特定于Windows的代码是用JavaScript编写的,并使用跨平台JavaScriptAPI作为代理API进行了初始化。对于SAPFiori客户端,index.html页面是本机端容器。它包含cordova.js并初始化Cordova插件。index.html中有一个webview元素(x-ms-webview),它可以打开远程Fiori应用程序。index.html页面和远程Fiori应用程序(webview中的网页)是两个完全不同的上下文,具有不同的DOM和window"对。一个上下文无法访问另一个上下文的命名空间。因此,它不能直接从访问webview一个之前在本地上下文中初始化的插件。这个问题在其他平台上通过将cordova.js注入远程网页(在主原生web视图中打开),初始化JavaScriptCordovaAPI并获得对已经初始化的访问权限来解决本机端。在Windows上,将Cordova注入远程Fiori应用程序是不可能的,因为出于安全原因,不允许远程页面访问某些WindowsAPI。这意味着Fiori应用程序无法访问任何Cordova插件。
