-1

我寫reddit的HTTP請求,但不工作的應用程序組件 我複製在其他頁面的代碼和工作正常,但在應用程序組件無法正常工作Http請求(和我的私人服務)Http請求在後臺模式

import { Http, Response,Request } from '@angular/http'; 
import 'rxjs'; 
import { Observable } from 'rxjs/Observable'; 
import 'rxjs/add/operator/map'; 





constructor(public http: Http,public agornaApi:AgornaApi ,private backgroundMode: BackgroundMode ,public localNotifications: LocalNotifications,platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, public storage: Storage,public authService: Auth) { 


localNotifications.on("click", (notification, state) => { 
this.nav.push(ListmessagesPage); 
     }); 
document.addEventListener('deviceready', function() { 
    // Android customization 
    // To indicate that the app is executing tasks in background and being paused would disrupt the user. 
    // The plug-in has to create a notification while in background - like a download progress bar. 
    cordova.plugins.backgroundMode.setDefaults({ 
     title: 'بارگزاری', 
     text: '' 
    }); 
    // Enable background mode 
    cordova.plugins.backgroundMode.enable(); 

    // Called when background mode has been activated 
    cordova.plugins.backgroundMode.onactivate = function() { 


      setInterval(function() { 






     this.http.get('https://www.reddit.com/r/gifs/new/.json?limit=10').map(res => res.json()).subscribe(data => { 


    cordova.plugins.notification.local.schedule({ 

     text: data.kind, 
     data: { secret:'key' } 
    }); 

    }); 





     }, 10000); 
    } 
}, false); 



    }); 



    platform.ready().then(() => { 
     // Okay, so the platform is ready and our plugins are available. 
     // Here you can do any higher level native things you might need. 
     statusBar.styleDefault(); 
      setTimeout(() => { 
     splashScreen.hide();   

     }, 100); 
    }); 
    } 
``` 

系統信息

全球套餐:

@ionic/cli-utils : 1.0.0-rc.2 
Cordova CLI  : 6.5.0 
Ionic CLI  : 3.0.0-rc.2 

本地套餐:

@ionic/app-scripts    : 1.3.6 
@ionic/cli-plugin-cordova  : 1.0.0-rc.2 
@ionic/cli-plugin-ionic-angular : 1.0.0-rc.2 
Ionic Framework     : ionic-angular 3.1.1 

系統:

Node  : v7.4.0 
OS   : macOS Sierra 
Xcode  : Xcode 8.3.2 Build version 8E2002 
ios-deploy : 1.9.1 
ios-sim : not installed 

回答

1

我會嘗試做一個單獨的頁面,在這裏我們有不同的控制器(該視圖)。

首先,請嘗試以下故障排除,以便知道它實際上是試圖獲取請求:

轉到CHROME-> DEV-工具 - >網絡選項卡:在網絡選項卡,驗證GET請求由角度完成。如果你看到它,然後嘗試看到請求的預覽部分。有時,根據您的系統,會發生交叉源塊。有時只是你的url,沒有被發現(404)或任何其他類型的錯誤。

其次:如果您看到了請求,但沒有數據,大概是,你可能得到的數據,就像從一個頁面移動到另一個之後立即做的事情。嘗試保存這些數據或嘗試製作http請求中的所有邏輯。但爲什麼在http請求中?由於http本質上是異步的,您可能正在執行,並且observable尚未得到響應以作出反應。所以可能你正在打電話,但代碼邏輯只是向前跳。

我曾嘗試在我的項目的這個完全相同的區域做http請求,他們總是給我提出問題。

+0

感謝的答案,在後臺模式控制檯或網絡標籤不顯示 – mahmoodi

+0

我刪除HTTP模塊和使用jQuery對於HTTP請求和正常工作的任何請求 – mahmoodi