Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 离子2窗口对象不';t Transfile,与WebSql window.openDatabase(..)有关的问题_Angular_Typescript_Cordova Plugins_Ionic2 - Fatal编程技术网

Angular 离子2窗口对象不';t Transfile,与WebSql window.openDatabase(..)有关的问题

Angular 离子2窗口对象不';t Transfile,与WebSql window.openDatabase(..)有关的问题,angular,typescript,cordova-plugins,ionic2,Angular,Typescript,Cordova Plugins,Ionic2,我在使用Ionic2中的窗口对象时遇到问题 此问题遵循中所述的相同想法 我发现了一个关于window对象的非常有用的输入。然而,我确实有一个问题 基于平台的条件,如果cordova plugin sqlite在真实设备上运行,我想使用它;如果它在浏览器(Chrome)上运行,我想使用WebSql。 我使用一个服务获取DB连接,在关于该服务的类中,我创建了一个函数,用于根据平台类型的条件设置我的服务的DB值(该函数在[my project]\src\app.components.ts]中调用):

我在使用Ionic2中的
窗口
对象时遇到问题

此问题遵循中所述的相同想法

我发现了一个关于
window
对象的非常有用的输入。然而,我确实有一个问题

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

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

由于函数不可传输,我在运行“Ionic serve”时收到一个错误,表示:

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

我真正不明白的是:如果我注释:
//this.db=window.openDatabase(“ionic2BrowserDev”,“1.0”,“5*1024*1024”)

那么它就可以透明了。在我的浏览器中,
console.info(窗口)
显示了
窗口
对象下所有属性的列表,我可以看到它包括
openDatabase

所以我真的很困惑为什么它不能传输


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

我知道,发布一个问题,然后马上给出答案是不受欢迎的做法

但我确实解决了我的问题。这就有了解决办法。要实现给定解决方案中解释的
windowService
,完全可以让它正常工作。它被传输,openDatabase()获得了成功

多亏了@toskv和@sebaferreras

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