I have been plagued by a nasty issue using NGX videogular + Ionic 6 (Angular) on my Android app for more than 2 months now.
In the APP on the device, something really weird happens.
The video plays properly for a few seconds.
After sometime, the video frame freezes completely. The video playing may/not resume. All this while, the audio is playing smoothly. I, initially, was under the impression that the Video was buffering hence the frozen frames. But that cant be so since the audio is streaming smoothly.
BY THE WAY, THIS HAPPENS ON A GIGABIT WIFI CONNECTION AS WELL AS 4G NETWORK
However, when the video is playing, if you scroll the page, the video frames play as long as the scroll continues. The moment that we stop the scroll, the video freezes again. All this while, the audio is playing smoothly.
Click here to view the video
We reviewed the installed plugins
es6-promise-plugin
cordova-plugin-music-controls2
cordova-plugin-file-transfer
cordova-plugin-device
cordova-plugin-media
cordova-plugin-background-mode
cordova-plugin-ionic-webview
cordova-plugin-x-socialsharing
cordova-plugin-ionic-keyboard
cordova-plugin-appminimize
cordova-plugin-whitelist
cordova-plugin-statusbar
cordova-plugin-inappbrowser
cordova-plugin-androidx-adapter
cordova-plugin-androidx
cordova-plugin-splashscreen
cordova-plugin-firebasex
cordova-plugin-advanced-http
ionic-plugin-deeplinks
cordova-plugin-screen-orientation
cordova-plugin-filepath
cordova-clipboard
cordova-plugin-app-version
cordova-plugin-network-information
cordova-plugin-file
Cordova Info output
Cordova Packages:
cli: 10.0.0
common: 4.0.2
create: 3.0.0
lib: 10.0.0
common: 4.0.2
fetch: 3.0.1
serve: 4.0.0
Project Installed Platforms:
android: 11.0.0
Project Installed Plugins:
com.razorpay.cordova: 0.16.1
cordova-clipboard: 1.3.0
cordova-plugin-advanced-http: 3.3.1
cordova-plugin-androidx-adapter: 1.1.3
cordova-plugin-androidx: 3.0.0
cordova-plugin-app-version: 0.1.14
cordova-plugin-appminimize: 1.0.1
cordova-plugin-background-mode: 0.7.3
cordova-plugin-device: 2.0.2
cordova-plugin-file-transfer: 1.7.1
cordova-plugin-file: 6.0.2
cordova-plugin-filepath: 1.6.0
cordova-plugin-firebasex: 16.0.0
cordova-plugin-inappbrowser: 5.0.0
cordova-plugin-ionic-keyboard: 2.2.0
cordova-plugin-ionic-webview: 5.0.0
cordova-plugin-media: 5.0.4
cordova-plugin-music-controls2: 3.0.7
cordova-plugin-network-information: 3.0.0
cordova-plugin-screen-orientation: 3.0.2
cordova-plugin-splashscreen: 5.0.2
cordova-plugin-statusbar: 2.4.2
cordova-plugin-whitelist: 1.3.5
cordova-plugin-x-socialsharing: 6.0.4
es6-promise-plugin: 4.2.2
ionic-plugin-deeplinks: 1.0.22
Environment:
OS: Ubuntu 22.04.1 LTS (linux 5.15.0-56-generic) x64
Node: v16.15.1
npm: 8.11.0
Click here to view the video
Related
I have created a new Ionic 4 menu template app and then I have installed the following plugin with deps. using the CLI command
ionic cordova add https://github.com/stevef51/cordova-ios-external-accessories
However when I try ionic cordova prepare ios, I am presented the following error.
ERROR in src/app/home/home.page.ts:25:39 - error TS2339: Property 'iOSExternalAccessory' does not exist on type 'CordovaPlugins'.
25 var pluginAPI = cordova.plugins.iOSExternalAccessory;
~~~~~~~~~~~~~~~~~~~~
[ERROR] An error occurred while running subprocess ng.
When I run the command
ionic cordova plugin list, I can see it installed
com.virtualmgr.iOSExternalAccessory 1.0.0 "iOSExternalAccessory"
cordova-plugin-ble-central 1.2.2 "BLE"
cordova-plugin-bluetooth-serial 0.4.7 "Bluetooth Serial"
cordova-plugin-bluetoothle 4.5.5 "Bluetooth LE"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.1.1 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
The code is dead simple: a click event, if I take it out the BLE code works just fine, however I am forced to use this plugin as the handheld scanner I am using does not support BLE as it does not show up in the list of accessories when I scan for BLE devices.
scanForDevices(){
var pluginAPI = cordova.plugins.iOSExternalAccessory;
this.ble.scan([], 5).subscribe(device => {
console.log(JSON.stringify(device));
});
}
I have made contact with the developer of the plugin, he has no Ionic experience, unfortunately.
Any and all advice would be appreciated.
I have worked it out.
I was missing the declare let cordova: any; at the top of my file.
I am testing my cordova app via Xcode simulator on multiple phone types running various versions of 9x through 11x. The app installs and works as intended on all devices running 10x and 11x but is not working on devices running 9x (specifically 9.3). On 9x devices, my app splash screen shows up and then the screen goes white.
In Xcode console I get zero errors or warnings - from a console perspective it just looks like a successful install. However, when trying to access Safari -> Develop -> Simulator - the app is not appearing as running so I can't view anything in Safari. I have no idea what to look for or what could be causing this. Any ideas or thoughts as to where/what to look for? This is consistently happening on any simulator device running 9.3 (5s, 6, 6 plus, 6s, 6s plus)
My app is running:
Cordova 4.5.0
Ionic: 1.7.14
cocoapods 1.3.1
And my installed plugins:
cl.rmd.cordova.dialoggps 0.0.2 "DialogGPS"
com.lampa.startapp 0.1.4 "startApp"
com.ludei.webview.plus 2.3.0 "Webview+"
com.peerio.cordova.plugin.carrier 1.0.1 "Carrier"
com.phonegap.plugins.nativesettingsopener 1.0.1 "Native settings"
com.vliesaputra.deviceinformation 1.0.1 "DeviceInformation"
cordova-instagram-plugin 0.5.5 "Instagram"
cordova-plugin-admobpro 2.29.22 "AdMob Plugin Pro"
cordova-plugin-appavailability 0.4.2 "AppAvailability"
cordova-plugin-appinfo 2.1.2 "AppInfo Plugin"
cordova-plugin-apprate 1.3.0 "AppRate"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-device 1.1.4 "Device"
cordova-plugin-device-motion 1.2.5 "Device Motion"
cordova-plugin-device-orientation 1.0.7 "Device Orientation"
cordova-plugin-dialogs 1.3.3 "Notification"
cordova-plugin-email 1.2.6 "EmailComposer"
cordova-plugin-extension 1.5.2 "Cordova Plugin Extension"
cordova-plugin-fastrde-checkgps 1.0.0 "checkGPS"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-firebase 0.1.24 "Google Firebase Plugin"
cordova-plugin-geolocation 1.0.1 "Geolocation"
cordova-plugin-globalization 1.0.7 "Globalization"
cordova-plugin-inappbrowser 1.7.1 "InAppBrowser"
cordova-plugin-network-information 1.3.3 "Network Information"
cordova-plugin-queries-schemes 0.1.1 "App Queries Strings"
cordova-plugin-request-location-accuracy 2.2.2 "Request Location Accuracy"
cordova-plugin-sim 1.3.3 "SIM"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.1 "StatusBar"
cordova-plugin-vibration 2.1.5 "Vibration"
cordova-plugin-whitelist 1.3.1 "Whitelist"
cordova-sms-plugin 0.1.11 "Cordova SMS Plugin"
cordova-universal-clipboard 0.1.0 "Clipboard"
cordova.plugins.diagnostic 3.7.1 "Diagnostic"
ionic-plugin-keyboard 2.2.1 "Keyboard"
On a side note, it would be easy to just ignore 9x and keep my app at 10x/11x, however, nearly 10% of the iOS install base is still running iOS 9x - thats a pretty significant user base to ignore.
This is freaking me. I have a simple app where you press a button and it take a picture, then the user can do other stuff but the problem is that sometime the getPicture function is ignored and camera never shows, here goes some info and simple code:
$ ionic info
Your system information:
Cordova CLI: 6.5.0
Ionic CLI Version: 2.2.2
Ionic App Lib Version: 2.2.1
ios-deploy version: 1.9.1
ios-sim version: 5.0.13
OS: macOS Sierra
Node Version: v6.10.2
Xcode version: Xcode 8.3.2 Build version 8E2002
Installed platforms:
android 6.0.0
ios 4.3.1
plugins installed
$ ionic plugin ls
WARN: ionic.project has been renamed to ionic.config.json, please rename it.
com.googlemaps.ios 2.1.1 "Google Maps SDK for iOS"
cordova-plugin-camera 2.4.0 "Camera"
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.3 "Console"
cordova-plugin-device 1.1.2 "Device"
cordova-plugin-file 4.3.1 "File"
cordova-plugin-file-transfer 1.6.1 "File Transfer"
cordova-plugin-geolocation 2.4.2 "Geolocation"
cordova-plugin-googlemaps 1.4.0 "phonegap-googlemaps-plugin"
cordova-plugin-screen-orientation 1.4.2 "Screen Orientation"
cordova-plugin-splashscreen 3.2.2 "Splashscreen"
cordova-plugin-statusbar 2.1.3 "StatusBar"
cordova-plugin-whitelist 1.2.2 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"
Then we have a HTML with this button
<button class="button button-full button-positive" ng-click="take_picture()">Take photo</button>
And the function into the controller
$scope.take_picture = function()
{
screen.lockOrientation('portrait');
var options = {
quality: 25,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
encodingType: Camera.EncodingType.JPEG,
saveToPhotoAlbum: false,
correctOrientation: true,
allowEdit: false,
targetHeight: 200,
targetwidth: 200
};
$cordovaCamera.getPicture(options).then(function(imageURI) {
$scope.image_uri = imageURI;
$scope.marcar_gps();
$cordovaCamera.cleanup();
}, function(err) {
console.log('error ',err);
$cordovaCamera.cleanup();
$ionicLoading.hide();
});
};
Hope someone can help.
Best!
EDIT
When camera is skipped on xCode console I get this:
Warning: Attempt to present on which is already presenting
Avoid using DATA_URL destinationType and replace it with FILE_URI as it may consume so much memory on the old phones. When you're using FILE_URI as destinationType, you can use cordova file plugin to transfer image to the external/internal storage, then you can call the image src link to your local device url.
EDIT
camera plugin and orientation plugin wasn't up to date. So need it to update from versions 2.4.0 "Camera" and 1.4.2 "Screen Orientation" to 2.4.1 "Camera" and 2.0.1 "Screen Orientation"
I am running my app on my phone this morning with
ionic run android -lcs
as usual ! But this morning the icon and splashscreen switched to default images !
Any idea how to get back to normal ?
Thanks
$ ionic info
Your system information:
Cordova CLI: 6.4.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.4
Node Version: v7.4.0
Xcode version: Not installed
Try to force update the android platform to version 6.1.0:
cordova platform update android#6.1.0
The current version (6.0.0) has a bug that causes this problem.
EDIT:
Cordova 6.5.0 has been released recently. This release updates cordova-android to version 6.1.1. So best solution now is:
npm install -g cordova
I have install ionic 2 template application.
On emulator application runs OK, but on actual device android 4.1.2 I see only white screen.
I have try to debug app with ionic run android --consolelogs --livereload but i don't see any error.
What behavior are you expecting?
Application should run on my real android 4.1.2 (LG-E440) device.
Steps to reproduce:
Follow instructions: http://ionicframework.com/docs/v2/getting-started/installation/
Take 4.1.2 Android and try to run application.
Application should show only white screen...
Ionic info:
Cordova CLI: 6.0.0
Gulp version: CLI version 3.9.1
Gulp local: Local version 3.9.1
Ionic Version: 2.0.0-beta.3
Ionic CLI Version: 2.0.0-beta.19
Ionic App Lib Version: 2.0.0-beta.9
OS: Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS
Node Version: v5.3.0