【问题标题】:ionic 2 window object doesn't transpile, issue with WebSql window.openDatabase(..)ionic 2 窗口对象无法转换,WebSql window.openDatabase(..) 出现问题
【发布时间】:2017-03-13 11:04:34
【问题描述】:

我无法在 Ionic2 中使用 window 对象。

这个问题与my previous question中描述的想法相同。

我发现了一个关于window 对象there 的非常有用的输入。不过我确实有问题。

基于平台的条件,如果在真机上运行我想使用cordova-plugin-sqlite,如果在浏览器(Chrome)上运行,我想使用WebSql。

我使用服务来获取数据库连接,在关于该服务的类中,我创建了一个函数来根据平台类型的条件设置我的服务的数据库值(并且此函数在 [我的项目]\src\app.components.ts):

getDummyDbForBrowerDev(platform){
    console.log('SqlSettingsService() getDummyDbForBrowerDev starts');
    if(platform.is('core')){
        console.info(window);
        this.db = window.openDatabase("ionic2BrowserDev","1.0","",5*1024*1024);
    }   
}

由于该函数无法转换,因此当“Ionic serve”运行时出现错误提示:

类型“window”上不存在属性“openDatabase”

我真正不明白的是:如果我评论:// this.db = window.openDatabase("ionic2BrowserDev","1.0","",5*1024*1024);

然后它可以很好地转换。在我的浏览器中,console.info(window) 显示了window 对象下所有属性的列表,我可以看到它包括openDatabase

所以我真的很困惑为什么它不能转换。

有人知道我做错了什么吗?

【问题讨论】:

    标签: angular typescript cordova-plugins ionic2


    【解决方案1】:

    我知道发布问题并在不久之后提供答案是一种不受欢迎的举动。

    但我确实解决了我的问题。这个thread 有解决方案。按照给定解决方案中的说明实施windowService 完全可以正常工作。它转译了,openDatabase() 成功了。

    感谢@toskv 和@sebaferreras。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      相关资源
      最近更新 更多