Image loader like Whatsapp Application in ionic 3
Whatsapp
Application
Ionic3
Image
Loader
- By Code solution
- Jan 20th, 2021
- 0 comments
- 1
Image3 image loader using lazy loader and image caches. image loader like Whatsapp application in ionic 3.
Create a project run this command:
ionic start <project name> blank --type ionic1
then move into the newly created directory:
cd <project name>
Install required js and CSS file
npm install --save imgcache.js --save ionic cordova plugin add cordova-plugin-file --save npm install --save @ionic-native/file ionic cordova plugin add cordova-plugin-device --save npm install --save @ionic-native/device ionic cordova plugin add cordova-plugin-file-transfer --save npm install --save @ionic-native/file-transfer npm install --save @chrisben/imgcache.js
Open app.js in src ->app-> app.module.ts and add code
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { OfflineApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { LazyImgComponent } from '../global/components/';
import { LazyLoadDirective } from '../global/directives/';
import { ImgcacheService } from '../global/services/';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
@NgModule({
declarations: [
OfflineApp,
HomePage,
LazyImgComponent,
LazyLoadDirective
],
imports: [
BrowserModule,
IonicModule.forRoot(OfflineApp)
],
bootstrap: [IonicApp],
entryComponents: [
OfflineApp,
HomePage,
LazyImgComponent
],
providers: [
StatusBar,
SplashScreen,
ImgcacheService,
{ provide: ErrorHandler, useClass: IonicErrorHandler }
]
})
export class AppModule {}
Open app.js in src ->app->app.component.ts and add code
import { Component, ViewChild } from '@angular/core';
import { Platform, Nav } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { ImgcacheService } from '../global/services';
import { HomePage } from '../pages/home/home';
@Component({
templateUrl: 'app.html'
})
export class OfflineApp {
@ViewChild('nav') nav: Nav;
rootPage:any = HomePage;
constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen,
imgcacheService: ImgcacheService) {
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();
splashScreen.hide();
// initialize imgCache library and set root
imgcacheService.initImgCache().then(() => {
this.nav.setRoot(this.rootPage);
});
});
}
}
Open app.js in src ->home-> home.html and add code
<ion-header>
<ion-navbar>
<ion-title>Home</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-card>
<ion-item>
<ion-avatar item-left>
<lazy-img inputSrc="http://codesolution.co.in/assets/uploads/codeicon.png"></lazy-img>
</ion-avatar>
<a href="http://codesolution.co.in/" target="blank">CodeSolution</a>
<p>in code we trust</p>
</ion-item>
<lazy-img inputSrc="http://codesolution.co.in/assets/uploads/codeicon.png"></lazy-img>
<ion-card-content>
<p>Images above have been cached. Try turning on the airplane mode and let Imgcache.js do the magic!</p>
</ion-card-content>
</ion-card>
<ion-card>
<ion-item>
<ion-avatar item-left>
<lazy-img inputSrc="https://static.pexels.com/photos/67636/rose-blue-flower-rose-blooms-67636.jpeg"></lazy-img>
</ion-avatar>
<a href="http://codesolution.co.in/" target="blank">CodeSolution</a>
<p>in code we trust</p>
</ion-item>
<lazy-img inputSrc="https://static.pexels.com/photos/67636/rose-blue-flower-rose-blooms-67636.jpeg"></lazy-img>
<ion-card-content>
<p>Images above have been cached. Try turning on the airplane mode and let Imgcache.js do the magic!</p>
</ion-card-content>
</ion-card>
<ion-card>
<ion-item>
<ion-avatar item-left>
<lazy-img inputSrc="http://www.gettyimages.ca/gi-resources/images/Homepage/Hero/UK/CMS_Creative_164657191_Kingfisher.jpg"></lazy-img>
</ion-avatar>
<a href="http://codesolution.co.in/" target="blank">CodeSolution</a>
<p>in code we trust</p>
</ion-item>
<lazy-img inputSrc="http://www.gettyimages.ca/gi-resources/images/Homepage/Hero/UK/CMS_Creative_164657191_Kingfisher.jpg"></lazy-img>
<ion-card-content>
<p>Images above have been cached. Try turning on the airplane mode and let Imgcache.js do the magic!</p>
</ion-card-content>
</ion-card>
<ion-card>
<ion-item>
<ion-avatar item-left>
<lazy-img inputSrc="https://st.hzcdn.com/simgs/38034d44081b02b3_3-5174/sudarshan_vis.jpg"></lazy-img>
</ion-avatar>
<a href="http://www.ninjadevs.io" target="blank">NinjaDevs.io</a>
<p>in code we trust</p>
</ion-item>
<lazy-img inputSrc="https://st.hzcdn.com/simgs/38034d44081b02b3_3-5174/sudarshan_vis.jpg"></lazy-img>
<ion-card-content>
<p>Images above have been cached. Try turning on the airplane mode and let Imgcache.js do the magic!</p>
</ion-card-content>
</ion-card>
</ion-content>
Image loader like WhatsApp application code is done you add platform in your application code platform add command:
ionic cordova platform add android/ios/windows
Create ios build add code in config.xml file
<access origin="*" /> <access origin="cdvfile://*" /> <allow-intent href="cdvfile://*" /> <feature name="Device"> <param name="ios-package" value="CDVDevice" /> <param name="android-package" value="org.apache.cordova.device.Device" /> </feature> <feature name="File"> <param name="ios-package" value="CDVFile" /> <param name="android-package" value="org.apache.cordova.file.FileUtils" /> </feature> <feature name="FileTransfer"> <param name="ios-package" value="CDVFileTransfer" /> <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /> </feature>
Build and Run command
ionic cordova build android/ios/windows ionic cordova run android/ios/windows
Github link: https://github.com/Sudarshan101/ionic3imageloader
See Demo: https://www.youtube.com/watch?v=r2P-TgRI1D4
thank you