Skip to content

datalink/cordova-plugin-crypto-file

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cordova crypto file plugin

HTML source file is encrypted at build, and decrypted at run.
https://www.npmjs.com/package/cordova-plugin-crypto-file

Add Plugin

cordova plugin add cordova-plugin-crypto-file

Purpose

This plugin was created to solve the issue of using cordova-plugin-ionic-webview with cordova-crypt-file, refer to #75

Important

The file IonicWebViewEngine.java (that is inside the ionic webview plugin) needs to be modified for this plugin to work and for the source code to be encrypted.

Steps:

  1. After adding the cordova-plugin-ionic-webview, navigate to the following location:

For cordova-android@6 :

platforms/android/src/com/ionicframework/cordova/webview/IonicWebViewEngine.java

For cordova-android@7 :

platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java

  1. Remove the following code:
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
      super.shouldInterceptRequest(view,request);
      return localServer.shouldInterceptRequest(request.getUrl());
    }

    @TargetApi(Build.VERSION_CODES.KITKAT)
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
      return localServer.shouldInterceptRequest(Uri.parse(url));
    }
  1. Add this instead:
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
      return super.shouldInterceptRequest(view, request);
    }

Then the plugin will work.

Configuration

You can also change the port in the config.xml, but it needs to be the same port as the one used in the "cordova-plugin-ionic-webview".

To change the port, do the following:

cryptoPort

<preference name="cryptoPort" value="8080" />

Encrypt

cordova build [ios / android]

Decrypt

cordova emulate [ios / android]
or
cordova run [ios / android]

Encryption subjects.

Default

  • .html
  • .htm
  • .js
  • .css

Edit subjects

You can specify the encryption subjects by editing plugin.xml.

plugins/cordova-plugin-crypt-file/plugin.xml

<cryptfiles>
    <include>
        <file regex="\.(htm|html|js|css)$" />
    </include>
    <exclude>
        <file regex="exclude_file\.js$" />
    </exclude>
</cryptfiles>

Specify the target file as a regular expression.

Supported platforms

  • iOS
  • Android
  • CrossWalk

Based on the original cordova-crypt-file created by tkyaji

https://github.com/tkyaji/cordova-plugin-crypt-file

License

Apache version 2.0

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 44.2%
  • Objective-C 38.2%
  • Java 17.6%