云连接器无法在设备上加载JSON数据

时间:2017-08-15 11:55:57

标签: cordova sapui5 hana

我们的客户已将其系统更改为SAP,并希望应用程序通过SAP界面显示数据。我们决定使用SAPUI5框架+ WebIDE开发应用程序,因为它提供了非常好的控件种类,具有可靠的MVC设计以及用于SAP界面的易于使用的云连接器。

我们已经配置了这样的连接器:

新app.json

<eddaylight:ifRegExp value="{overview}" pattern="/[a-zA-Z0-9]+/">
    <f:then>
        {overview}
    </f:then>
    <f:else>
        something else
    </f:else>
</eddaylight:ifRegExp>

这是我们在 component.js 中的测试调用:

AbstractConditionViewHelper

在我们的WebIDE中,我们获得了包含来自SAP连接器API的所有需要​​数据的完整JSON,但是,只要我们构建应用程序并使用HAT(Android,iOS,甚至已签名)在任何设备上发布它,请求失败。

首先,它会提醒{ "welcomeFile": "/webapp/index.html", "routes": [ { "path": "/resources", "target": { "type": "service", "name": "sapui5", "entryPath": "/resources" }, "description": "SAPUI5 Resources" }, { "path": "/test-resources", "target": { "type": "service", "name": "sapui5", "entryPath": "/test-resources" }, "description": "SAPUI5 Test Resources" }, { "path": "/mynews", "target": { "type": "destination", "name": "MyNews_CMS", "preferLocal": true } } ], "sendWelcomeFileRedirect": true } (空对象),然后提醒try { $.get("/mynews/?json=2", function(data, status) { alert("success: " + JSON.stringify(data)); }).fail(function(arg1) { alert("error: " + JSON.stringify(arg1)); }); } catch (err) { alert("global error: " + err); }

我们如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

neo-app.json与您的UI5应用程序无关。甚至不需要使应用程序正常工作,因为只有SAP WebIDE才会解释并使用此文件进行配置。

您真正想要做的是在manifest.json

中定义您的目的地
...
"dataSources": {
   "ODataEndpoint": {
        "uri": "https://yourappname.hana.ondemand.com/your/odata/path/",
        "type": "OData",
        "settings": {
           "odataVersion": "2.0",
           "localUri": "/your/odata/path/"
        }
    }
}
...
"models": {
    "": {
        "dataSource": "ODataEndpoint"
    }
}
...

如果这不起作用,您应该调试设备网络活动以查看调用哪个URL。

  

如何在iOS App中调试网络呼叫:https://cordova.apache.org/docs/en/latest/guide/next/#ios-debugging

     

如何在Android App中调试网络调用:   https://cordova.apache.org/docs/en/latest/guide/next/#chrome-remote-debugging