I am reading Offline OData plugin introduction from SAP Help, There is one sentence “OData requests made against this plugin use the available open offline stores.“, and I am very curious about how this is done. As a result I had a look at my offline application project. I have found a plugin.xml file in folder kapsel-plugin-odata.
key implementation of OData.js and OfflineStore.js
(1) define a custom http request which will delegate the OData request to device native API.
A new httpClient is defined. Inside its request method, the requested url is compared against each offline supported url configured in array openStores. If matched, a flag handle is set as true.
By looking at implementation of OfflineStore(), we can know that this constructor does not perform Offline store initialization, but just parse every url specified by properties argument.
Instead, OfflineStore.open must be called and only after that, the offline store will then be available for mobile device to use.