[
https://issues.apache.org/jira/browse/CB-10967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15213072#comment-15213072
]
jcesarmobile commented on CB-10967:
-----------------------------------
I thought it was one of the know issues already reported, but it's not, I was
probably confused by CB-10142, but that one is about WebSQL, not IndexedDB
I'll add your issue to the list
(https://issues.apache.org/jira/browse/CB-10109?jql=project%20%3D%20CB%20AND%20labels%20%3D%20wkwebview-known-issues)
and add some extra information.
IndexedDB is not supported on regular cordova apps because cordova apps use the
UIWebView
IndexedDB is supported on WKWebView, but when using
cordova-plugin-wkwebview-engine the window.indexedDB.open will call the onerror
because IndexedDB doesn't work when it's loaded from file:// protocol.
The workaround to use IndexedDB on cordova apps is to use the experimental
wkwebview localhost plugin that uses a webserver
(https://github.com/apache/cordova-plugins/tree/master/wkwebview-engine-localhost)
Another workaround might be using an IndexedDB polyfill like
https://github.com/axemclion/IndexedDBShim (didn't test)
Using this sample code:
{code}
if (!window.indexedDB) {
alert("IndexedDB not supported");
} else {
var request = window.indexedDB.open("MyTestDatabase", 3);
request.onsuccess = function(event) {
alert("success "+JSON.stringify(event));
};
request.onerror = function(event) {
alert("error "+JSON.stringify(event));
};
}
{code}
A regular cordova app will call the alert("IndexedDB not supported");
After installing cordova-plugin-wkwebview-engine, the onerror will be executed
with an empty error.
If you execute the same code from an online page, it will call onsuccess
Installing the wkwebview-engine-localhost it will work too.
> IndexedDB API not properly exposed?
> -----------------------------------
>
> Key: CB-10967
> URL: https://issues.apache.org/jira/browse/CB-10967
> Project: Apache Cordova
> Issue Type: Bug
> Components: iOS
> Affects Versions: 4.0.0
> Environment: Cordova CLI 6.x.x, Cordova-iOS 4.x.x
> Reporter: Brent Allen
>
> So before cordova-ios 4.0.0 I was using
> https://github.com/Telerik-Verified-Plugins/WKWebView.git as a workaround to
> get the extra webkit apis/performance.
> Clearly not an ideal workaround since it requires a localhost origin. Making
> several CORS and iFrame operations a major headache.
> So I need to update to the latest frameworks. And I was successful in doing
> so with one catch.
> The webkit api for IndexDB is not exposed anymore. I am a little confused as
> to how this could be since it was expose when using the workaround. The only
> diff that I can find that seems to relate to webkit is this:
> From 'plugins/com.telerik.plugins.wkwebview/www/wkwebview.js'
> ```
> var origNativeFetchMessages = exec.nativeFetchMessages;
> exec.nativeFetchMessages = function() {
> var cmds = origNativeFetchMessages();
> cmds = JSON.parse(cmds);
> for(var i=0;i<cmds.length;i++) {
> var cmd = cmds[i];
> if(cmd[1]==='WKWebView') continue;
>
> window.webkit.messageHandlers.cordova.postMessage(cmd);
> }
> return '';
> };
> ```
> Which was also still available in [email protected](I think)
> I can't help but wonder if this has something to do with exposing the open
> versions of the api(s). And if so was this supposed to be re-implemented
> using the latest patterns?
> I am using mWater/minimongo which relies on this api. I already opened an
> issue on that repo. But I am not optimistic that it will be addressed there
> since the api hasn't technically changed as far as I can tell. It is just
> being hidden by the webview and the cordova platform is no longer exposing it
> manually.
> Any advice would be greatly appreciated. I am hoping to avoid cloning the
> minimongo repo. Since I am not even sure the apples implementation will work
> as I have yet to find any documentation on it.
> I am also concerned that this may have implications for other webkit apis
> that I have yet to discover as broken in this context.
> Thanks in advance for any help.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]