2

我正在使用 cordova 创建一个应用程序:

openDatabase('testname', '1.0', 'Database display name', 5 * 1024 * 1024)

我正在使用插件登录 facebook https://github.com/wizcorp/phonegap-facebook-plugin,成功登录后我正在调用以下函数

facebookConnectPlugin.api("<user-id>/?fields=id,email", ["user_birthday"],
    function (result) {
        alert("Result: " + JSON.stringify(result));
        /* alerts:
            {
                "id": "000000123456789",
                "email": "myemail@example.com"
            }
        */

        openDatabase('testname', '1.0', 'Database display name', 5 * 1024 * 1024)

    },
    function (error) {
        alert("Failed: " + error);
    }
});

我收到一个错误 SecurityError: DOM Exception 18: 试图突破用户代理的安全策略。

4

1 回答 1

0

感谢您让我知道您拥有的版本+平台。几个月前我遇到了同样的问题,这是由于 android 上的 cordova 中的一个错误。

您可以在此处找到有关此修复的更多信息 https://github.com/apache/cordova-android/commit/6e4ef508e8f9f2d396515bd1d7465481d2f1285c

有两种可能的方法来解决这个问题:

第一个是更新到 cordova 3.2,当你已经在 3.0 上时这应该是相当简单的

另一个是将这个修复移植到 3.0,这也是可能的。在其中CordovaChromeClient.java有一个名为“onExceededDatabaseQuota”的方法,删除那里的所有逻辑并将其更改为quotaUpdater.updateQuota(MAX_QUOTA);

于 2014-07-24T07:44:33.407 回答