Friday, June 29, 2018

Git & IONIC

git branch develop
git checkout develop //use
git commit -am "change channel"
git push ionic develop

git checkout master
git merge develop
git commit -am "merge conflict" // checkin local
git push origin // push to server
git push ionic master // push to server

git status

Friday, June 1, 2018

Dowload Attachment From Google Mail using IMAP


//POP is temporary only, so use IMAP better
//Nuget S22.IMAP

using (ImapClient client = new ImapClient("imap.gmail.com", 993, "Email", "App Password", AuthMethod.Login, true))
{
    IEnumerable<uint> uids = client.Search(
         SearchCondition.From("from@mail")
         .And(SearchCondition.SentSince(new DateTime(2018, 05, 01)))
          .And(SearchCondition.SentBefore(new DateTime(2018, 06, 01))), "Mail box Name");

    Console.WriteLine(uids.Count() + " Emails:");

    foreach (var uid in uids)
    {
        MailMessage message = client.GetMessage(uid,mailbox:"Mail box Name");

        Console.WriteLine(message.Subject);

        foreach (Attachment attachment in message.Attachments)
        {
            byte[] allBytes = new byte[attachment.ContentStream.Length];
            int bytesRead = attachment.ContentStream.Read(allBytes, 0, (int)attachment.ContentStream.Length);
            string destinationFile = @"C:\\myfile\\" + attachment.Name;
            BinaryWriter writer = new BinaryWriter(new FileStream(destinationFile, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None));
            writer.Write(allBytes);
            writer.Close();
        }
   }
}

Wednesday, May 30, 2018

command not recognized

  1. Google the correct variable name and path
  2. set to environment variable
  3.  use ; to add on the value if variable name is same


Tuesday, May 29, 2018

dispatch.yaml

Override routing rules, to specific service.
  1. Create a dispatch.yaml
  2. Write Code
dispatch:
  - url: '*/favicon.ico'
    service: default
  - url: 'myurl.com/*'
    service: myservice
  1. cd dispatchfilepath
  2. gcloud config list (check is it in project ?)
  3. gcloud config set project [myproject] (if u not in project)
  4. gcloud app deploy dispatch.yaml

Sunday, May 27, 2018

Service Worker

1) is a Javascript file run in background and assists in  offline web application.
2) is a cache

<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('service-worker.js')
.then(() => console.log('service worker installed'))
.catch(err => console.error('Error', err));
}
</script>

service-worker.js
var CACHE_VERSION = '0.1.1'; //Update Version

Wednesday, May 16, 2018

Ionic Framework Theory

src/index.html
- Main Entry point of App, set up script and CSS and bootstrap, start running app
- <ion-app></ion-app>

src/app/app.module.ts - entry point for the app (declaration and imports)

src/app/app.component.ts - root component, first component to load
src/app/app.htmltemplate 


ionic info - view ionic info

cordova plugin rm cordova-plugin-x-socialsharing --force
cordova plugin add cordova-plugin-x-socialsharing@5.3.2
ionic cordova platform add android@6.3.0

Monday, May 7, 2018

ionic framework tutorial

1)  npm install -g ionic cordova (-g is means global install)
2) cd to the folder u wan to create the app
3) ionic start helloworld blank (it will generate a folder and files at the path u cd)
  • template : blank, tutorial
4) cd to helloworld (IonicProject)
5) ionic serve (run your app)

Publish to Android

1) ionic cordova run android --prod --release (cd to IonicProject)
1.1) The file location will at "platforms/andriod/build/output/apk"

*if no work install JAVA 1.8jdk-8u172-windows-x64.exe
at Environment Variable set JAVA_Home to C:\Program Files\Java\jdk1.8.0_172

2) Create Key store
2.1) cd to c:\Program Files\Java\jdk1.8_0172\bin2.2) keytool -genkey -v -keystore C:\KeyStore/appkey.keystore -alias MyKey -keyalg RSA -keysize 2048 -validity 10000
2.3) Ask password and questions

3) Sign the unasigned APK
3.1) cd to c:\Program Files\Java\jdk1.8_0172\bin
3.2) jarsigner -verbose -keystore c:/keystore/appkey.keystore -storepass [keystorepassword] -keypass [keystorepassword] c:/keystore/app-release-unasigned.apk Mykey

4)Zip Align
4.1) cd to c:\users\[user]\appdata\local\andriod\sdk\build-tools\27.03
4.2) zipalign -v 4 c:/KeyStore/app-release-unsigned.apk c:/KeyStore/MyIonic.apk