Hi. This problem presents only on Iphone x. We have the app with 5 different tabs. First tab works well, but on other tabs we have perpetual downloading. If I remove all logic from first tab everything works well. But there are no mistakes in console or logs on this tab. Do you know where can be the problem? db.executeSql - we call this method and nothing happens after. This is our package.json file:
{
“name”: “ionfullapp”,
“version”: “1.2.0”,
“description”: “ionFullApp: An Ionic starter project”,
“dependencies”: {
"@ionic-native/image-picker": “^4.4.2”,
"@ionic-native/status-bar": “^4.5.2”,
“async”: “^1.4.0”,
“bower”: “^1.3.3”,
“com.synconset.imagepicker”: “~2.1.8”,
“cordova”: “^7.1.0”,
“cordova-android”: “^6.3.0”,
“cordova-clipboard”: “^1.1.1”,
“cordova-config”: “^0.7.0”,
“cordova-config-utils”: “^2.3.0”,
“cordova-ios”: “^4.5.4”,
“cordova-plugin-actionsheet”: “^2.3.3”,
“cordova-plugin-apprate”: “^1.3.0”,
“cordova-plugin-camera”: “^2.2.0”,
“cordova-plugin-clipboard”: “^1.0.0”,
“cordova-plugin-compat”: “^1.2.0”,
“cordova-plugin-console”: “^1.1.0”,
“cordova-plugin-device”: “^1.1.6”,
“cordova-plugin-dialogs”: “^1.3.3”,
“cordova-plugin-email-composer”: “^0.8.11”,
“cordova-plugin-extension”: “^1.5.2”,
“cordova-plugin-file”: “^4.3.3”,
“cordova-plugin-file-transfer”: “^1.6.3”,
“cordova-plugin-geolocation”: “^1.0.1”,
“cordova-plugin-globalization”: “^1.0.7”,
“cordova-plugin-image-picker”: “^1.1.3”,
“cordova-plugin-inappbrowser”: “^1.7.1”,
“cordova-plugin-insomnia”: “^4.3.0”,
“cordova-plugin-ionic-keyboard”: “^2.0.4”,
“cordova-plugin-mixpanel”: “^2.3.5”,
“cordova-plugin-network-information”: “^1.3.3”,
“cordova-plugin-splashscreen”: “^4.0.3”,
“cordova-plugin-statusbar”: “^2.2.3”,
“cordova-plugin-telerik-imagepicker”: “^2.1.8”,
“cordova-plugin-webserver”: “^1.0.3”,
“cordova-plugin-whitelist”: “^1.3.2”,
“cordova-plugin-wkwebview-engine”: “^1.1.4”,
“cordova-plugin-x-socialsharing”: “^5.2.1”,
“cordova-plugin-zip”: “^3.1.0”,
“cordova-sqlite-storage”: “^2.2.0”,
“es6-promise-plugin”: “^4.1.0”,
“gulp”: “^3.5.6”,
“gulp-angular-templatecache”: “^1.5.0”,
“gulp-intercept”: “^0.1.0”,
“gulp-sass”: “^2.3.2”,
“gulp-sourcemaps”: “^1.5.2”,
“gulp-util”: “^2.2.14”,
“ionic”: “^3.18.0”,
“jsonfile”: “^3.0.1”,
“lodash”: “^4.17.4”,
“moment”: “^2.18.1”,
“node-sass”: “^4.6.0”,
“plist”: “^2.1.0”,
“require-dir”: “^0.3.0”,
“shelljs”: “^0.3.0”,
“xcode”: “^1.0.0”
},
“devDependencies”: {
“del”: “^1.2.0”,
“gulp-flatten”: “^0.1.1”,
“gulp-if”: “^1.2.5”,
“gulp-intercept”: “^0.1.0”,
“gulp-json-editor”: “^2.2.1”,
“gulp-minify-css”: “^1.2.0”,
“gulp-ng-annotate”: “^1.1.0”,
“gulp-ng-constant”: “^0.3.0”,
“gulp-preprocess”: “^1.2.0”,
“gulp-read”: “0.0.1”,
“gulp-rename”: “^1.2.2”,
“gulp-shell”: “^0.4.2”,
“gulp-to-json”: “^1.0.1”,
“gulp-uglify”: “^1.2.0”,
“gulp-useref”: “^1.2.0”,
“jshint”: “^2.8.0”,
“minimist”: “^1.1.2”,
“mv”: “^2.1.1”
},
“cordovaPlugins”: [
“cordova-plugin-console”,
“cordova-plugin-device”,
“cordova-plugin-dialogs”,
“cordova-plugin-globalization”,
“cordova-plugin-extension”,
“es6-promise-plugin”,
“cordova-plugin-inappbrowser”,
“cordova-plugin-whitelist”,
{
“locator”: “https://github.com/katzer/cordova-plugin-email-composer.git”,
“id”: “cordova-plugin-email-composer”
},
“cordova-plugin-geolocation”,
“cordova-plugin-file”,
“cordova-plugin-compat”,
“cordova-plugin-file-transfer”,
“cordova-plugin-zip”,
“cordova-sqlite-storage”,
“cordova-plugin-statusbar”,
“cordova-plugin-network-information”,
“cordova-plugin-mixpanel”,
{
“locator”: “https://github.com/EddyVerbruggen/cordova-plugin-actionsheet.git”,
“id”: “cordova-plugin-actionsheet”
},
“cordova-plugin-camera”
],
“cordovaPlatforms”: [
“android”,
“ios”,
{
“platform”: “April_UAT1”,
“version”: “”,
“locator”: “April_UAT1”
},
{
“platform”: “ios”,
“version”: “”,
“locator”: “ios”
}
],
“cordova”: {
“plugins”: {
“cordova-plugin-actionsheet”: {},
“cordova-plugin-camera”: {
“CAMERA_USAGE_DESCRIPTION”: " ",
“PHOTOLIBRARY_USAGE_DESCRIPTION”: " "
},
“cordova-plugin-console”: {},
“cordova-plugin-device”: {},
“cordova-plugin-dialogs”: {},
“cordova-plugin-extension”: {},
“cordova-plugin-file”: {},
“cordova-plugin-file-transfer”: {},
“cordova-plugin-geolocation”: {},
“cordova-plugin-globalization”: {},
“cordova-plugin-inappbrowser”: {},
“cordova-plugin-insomnia”: {},
“cordova-plugin-mixpanel”: {},
“cordova-plugin-network-information”: {},
“cordova-plugin-statusbar”: {},
“cordova-plugin-whitelist”: {},
“cordova-plugin-x-socialsharing”: {},
“cordova-plugin-zip”: {},
“cordova-plugin-email-composer”: {},
“cordova-plugin-splashscreen”: {},
“cordova-plugin-ionic-keyboard”: {},
“cordova-plugin-clipboard”: {},
“cordova-plugin-apprate”: {},
“cordova-plugin-wkwebview-engine”: {},
“com.synconset.imagepicker”: {
“PHOTO_LIBRARY_USAGE_DESCRIPTION”: " "
},
“cordova-clipboard”: {},
“cordova-sqlite-storage”: {}
},
“platforms”: [
“android”,
“ios”
]
}
}
This is our config.xml file:
<?xml version='1.0' encoding='utf-8'?> i3p vodacom The Stake Holder Company The Stake Holder Company demo/i3p i3p-demo icon.png $(PRODUCT_NAME) uses CamerasThis is example of our request:
globalDB.executeSql(stmt, [], function (res) {
console.log(res);
}, function (err) {
console.log(err);
});
This is our first tab component:
// NEWS Tab
angular.module(‘tsc.controllers’)
.controller(‘NewsCtrl’, function ($scope, $ionicNavBarDelegate, $cordovaDialogs, $stateParams, $ionicLoading,
$state, $ionicActionSheet, $ionicScrollDelegate, News, NewsService, AssetsService,
$cordovaSocialSharing, $cordovaClipboard, Issue, Watchlist, User, APIConnector) {
$ionicNavBarDelegate.showBackButton(false);
var needLoadmoreApi = true;
$scope.isShowBack = false;
var index = 0;
var numLoad = 30;
var isLoadedNews = false;
var isLastLoad = false;
$scope.news = [];
$scope.numNewStories = 0;
$scope.newsKey = AppSettings.newsKey;
$scope.getTriangleColor = News.getTriangleColor;
$scope.isWatchlistEmpty = Watchlist.isEmpty;
if ($stateParams.showBack && $stateParams.showBack === ‘true’) {
$scope.isShowBack = true;
}
News.deleteOld();
var addIsShowDesc = function (newsArr, loadMoreHttp) {
var newsAddIsShowDesc = [];
for (var i = 0; i < newsArr.length; i++) {
newsArr[i].isShowDesc = false;
// [{name: ‘xbsbx’, data : ‘base64 of the image’}]
newsArr[i].imgArr = [];
newsAddIsShowDesc.push(newsArr[i]);
}
if (newsArr.length === 0) {
isLastLoad = true;
}
if (loadMoreHttp) {
isLastLoad = false;
}
return newsAddIsShowDesc;
};
var addArrImg = function (data) {
AssetsService.addArrImg(data);
};
$scope.onClickContactEntityImg = function (imgObj) {
var stateToGo;
if (imgObj.type === 'contact') {
stateToGo = 'tab.news-contact';
} else if (imgObj.type === 'entity') {
stateToGo = 'tab.news-entity';
}
$state.go(stateToGo, {
objId: imgObj.name,
// contact, entity, meeting
type: imgObj.type,
from: 'news'
});
};
$scope.moreDataCanBeLoaded = function () {
return !isLastLoad;
};
var getNewsCallback = function (news) {
addArrImg(news);
index = index + numLoad;
$scope.news = addIsShowDesc(news);
isLoadedNews = true;
$scope.notiShow = true;
$scope.numNewStories = data.total_rows_released;
$scope.$apply();
setTimeout(function () {
$scope.notiShow = false;
$scope.$apply();
}, NEWS_NOTI_DISAPPEAR_TIME);
};
var arrLoadNews = [];
$scope.openInappBrowser = function (news) {
cordova.InAppBrowser.open(news.onClickText, '_blank', 'location=no');
};
// Handle Noti
$scope.notiShow = false;
$scope.numNewStories = 0;
$scope.showDescription = false;
if (window.localStorage.newsMode === 'news') {
document.addEventListener('deviceready', function () {
if (cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.close();
}
News.get(index, numLoad, function (news) {
newsGetCallback(news);
$scope.newsHeader = 'Latest News ';
});
}, false);
} else {
document.addEventListener('deviceready', function () {
if (cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.close();
}
News.getAtmos(index, numLoad, function (news) {
newsGetCallback(news);
$scope.newsHeader = 'Atmospherics ';
});
}, false);
}
$scope.excerptClass = function (eachNews) {
if (eachNews.isShowDesc) {
return 'entry-excerpt-expand';
} else {
return 'entry-excerpt';
}
};
$scope.toggleDescription = function (eachNews) {
trackAndFlush('Expand news', {id: eachNews.id});
News.markAsRead(eachNews);
eachNews.isShowDesc = !eachNews.isShowDesc;
};
//gotoFilterNews
$scope.gotoFilterNews = function () {
trackAndFlush('News Filter', {});
$state.go('tab.news-filter');
};
$scope.showShareDialog = function (news) {
showShareDialogGlobal(news, $cordovaSocialSharing,
$cordovaClipboard, $ionicActionSheet, $cordovaDialogs);
};
$scope.showWatchlistSetup = function () {
window.localStorage.newsMode = 'news';
trackAndFlush('Edit Watchlist', {});
Watchlist.showConfig();
};
$scope.showWatchlist = function () {
window.localStorage.newsMode = 'news';
trackAndFlush('Watchlist', {});
$state.go('tab.watchlist');
};
$scope.watchlistUnreadCount = Watchlist.unreadCount;
APIConnector.runOfflineQueue(User.getToken());
});