indexedDB.open 方法无效

问题描述

环境:在ipad(iPad mini5,版本14.6)中使用webview加载远程url,远程url加载并执行后,代码如下所示,没有打印。似乎 indexedDB.open() 没有任何回报。

经过我的测试,只有14.6版本有问题,ios 14.4以下版本没有问题。我不确定这是 webview 问题还是 indexedDB 问题

  var dbname = "test";
  var dbVersion = 1;
  var indexedDB = window.indexedDB ||
                  window.webkitIndexedDB ||
                  window.mozIndexedDB;
  var db = '';

  console.log("setup indexed db");
  var request = indexedDB.open(dbname,dbVersion);
  request.onsuccess = function(e) {
    console.log("db request success");
  };

  request.onblocked = function(e) {
    console.log("DB open blocked",e);
  };

  request.onerror = function(err) {
    console.log("error",err);
  };

  request.onversionchange = function(err) {
    console.log("onversionchange",err);
  };

  request.onupgradeneeded = function(e) {
    console.log("upgrade needed");
  };

解决方法

经过测试,发现wkWebview会出现问题,使用uiWebview不会。所以我觉得新版ios wkWebview对于indexedDB的兼容性有问题