cordova-plugin-appice 2.0.8 → 2.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +120 -122
  2. package/package.json +45 -27
  3. package/plugin.xml +168 -103
  4. package/scripts/BeforeAndroidBuilt.js +160 -126
  5. package/scripts/BeforeIosBuilt.js +38 -38
  6. package/scripts/androidAfterPluginAdd.js +159 -159
  7. package/scripts/androidAfterPluginRm.js +195 -195
  8. package/scripts/iOSAfterPluginAdd.js +98 -98
  9. package/scripts/iOSAfterPluginRm.js +73 -74
  10. package/src/android/AppICEMFPPush.java +177 -0
  11. package/{libcordova/src/main/java/com/appice/cordova → src/android}/AppICEPlugin.java +405 -489
  12. package/{libcordova/src/main/java/com/appice/cordova → src/android}/CampaignCampsReceiver.java +8 -9
  13. package/{libcordova/src/main/java/com/appice/cordova → src/android}/NotificationEventService.java +16 -7
  14. package/src/build.gradle +16 -14
  15. package/src/firebase/modified/android/FirebasePluginMessagingService.java +356 -356
  16. package/src/firebase/modified/ios/AppDelegate+FirebasePlugin.m +529 -529
  17. package/src/firebase/original/android/FirebasePluginMessagingService.java +348 -348
  18. package/src/firebase/original/ios/AppDelegate+FirebasePlugin.m +519 -519
  19. package/src/ios/AppDelegate+AppICEPlugin.h +8 -8
  20. package/src/ios/AppDelegate+AppICEPlugin.m +278 -191
  21. package/src/ios/AppICEPlugin.h +93 -90
  22. package/src/ios/AppICEPlugin.m +1161 -1062
  23. package/www/AppICE.js +289 -284
  24. package/libcordova/android-release-aar.gradle +0 -63
  25. package/libcordova/build.gradle +0 -50
  26. package/libcordova/cordova.jar +0 -0
  27. package/libcordova/proguard-rules.pro +0 -21
  28. package/libcordova/src/main/AndroidManifest.xml +0 -24
  29. package/libcordova/src/main/res/values/strings.xml +0 -3
  30. package/src/firebase/modified/modified.iml +0 -11
  31. package/src/firebase/original/original.iml +0 -11
@@ -1,126 +1,160 @@
1
- module.exports = function(context) {
2
- var fs =require ('fs');
3
- var path = require('path');
4
- var shell = require('shelljs');
5
-
6
- var platformRoot = path.join(context.opts.projectRoot, 'platforms/android');
7
- var platformRootios = path.join(context.opts.projectRoot, 'platforms/ios');
8
-
9
- var root_cert = path.join(context.opts.projectRoot, 'res');
10
- //var root_cert_ios = path.join(context.opts.projectRoot, 'res/ai_ios.cer');
11
-
12
- const cordovaCommon = context.requireCordovaModule('cordova-common');
13
- const appConfig = new cordovaCommon.ConfigParser('config.xml');
14
- const appName = appConfig.name();
15
- var APPICE_FIREBASE_UPDATE = appConfig.getPlatformPreference("APPICE_FIREBASE_UPDATE", "android");
16
- var APPICE_APPLICATIONCLASS_INCLUDE= appConfig.getPlatformPreference("APPICE_APPLICATIONCLASS_INCLUDE", "android");
17
- var MFP_PUSH=appConfig.getPlatformPreference("MFP_PUSH", "android");
18
- var SSL_PINNING=appConfig.getPlatformPreference("SSL_PINNING", "android");
19
-
20
-
21
- var project_properties=path.join(platformRoot,'project.properties');
22
- ///for SSL pinning
23
-
24
-
25
- if (MFP_PUSH === "true"){
26
- var manifestFileNew = path.join(platformRoot, '/app/src/main/AndroidManifest.xml');
27
-
28
- if (fs.existsSync(manifestFileNew)) {
29
- try {
30
- fs.readFile(manifestFileNew, 'utf8', function (err,data) {
31
- if (err) {
32
- throw new Error('Unable to find AndroidManifest.xml: ' + err);
33
- }
34
- var serviceTag='<service android:exported="true" android:name="com.appice.appicemfppush.AppICEMFPPush">';
35
- if (data.indexOf(serviceTag) == -1) {
36
- var result = data.replace(/<service android:exported="false" android:name="com.ibm.fcmtest.myIntentService">/g,serviceTag);
37
- fs.writeFile(manifestFileNew, result, 'utf8', function (err) {
38
- if (err) {
39
- var result = data.replace(/<service android:exported="false" android:name="com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPushNewIntentService">/g,serviceTag);
40
- fs.writeFile(manifestFileNew, result, 'utf8', function (err) {
41
- if (err) {
42
- throw new Error('Unable to write into AndroidManifest.xml: ' + err);
43
- }
44
-
45
- });
46
- }
47
-
48
- });
49
-
50
- }
51
- });
52
- } catch(err) {
53
- }
54
- } else{
55
- var manifestFileNewRoot = path.join(platformRoot, 'AndroidManifest.xml');
56
- if (fs.existsSync(manifestFileNewRoot)) {
57
- try {
58
- fs.readFile(manifestFileNewRoot, 'utf8', function (err,data) {
59
- if (err) {
60
- throw new Error('Unable to find AndroidManifest.xml: ' + err);
61
- }
62
- var serviceTag='<service android:exported="true" android:name="com.appice.appicemfppush.AppICEMFPPush">';
63
-
64
- if (data.indexOf(serviceTag) == -1) {
65
- var result = data.replace(/<service android:exported="false" android:name="com.ibm.fcmtest.myIntentService">/g,serviceTag);
66
- fs.writeFile(manifestFileNew, result, 'utf8', function (err) {
67
- if (err) {
68
-
69
- var result = data.replace(/<service android:exported="false" android:name="com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPushNewIntentService">/g,serviceTag);
70
- fs.writeFile(manifestFileNew, result, 'utf8', function (err) {
71
- if (err) {
72
- throw new Error('Unable to write into AndroidManifest.xml: ' + err);
73
- }
74
-
75
- });
76
- }
77
-
78
- });
79
-
80
- }
81
- });
82
- } catch(err) {
83
- }
84
- }
85
- }
86
-
87
- if(fs.existsSync(project_properties)){
88
- try {
89
- fs.readFile(project_properties, 'utf8', function (err,data) {
90
- if (err) {
91
- throw new Error('Unable to find project_properties: ' + err);
92
- }
93
- var modifiedBuildGradle = data ;
94
- });
95
- }
96
- catch(err) {
97
- console.log("project_properties found :",err);
98
- }
99
- }
100
- }
101
-
102
- if(SSL_PINNING === "true"){
103
-
104
- var target_cert_android = path.join(platformRoot, '/app/src/main/assets/');
105
- var target_cert_ios = path.join(platformRootios, appName+'/Resources/');
106
- //checking existing in android
107
- if (fs.existsSync(target_cert_android+'ai_android.pem')) {
108
- try {
109
- shell.rm('-Rf', target_cert_android+'ai_android.pem');
110
- } catch(err) {
111
- }
112
- }
113
-
114
-
115
- //putting files in assest folder for android
116
- var android_Certificate = path.join(root_cert, 'ai_android.pem');
117
- try {
118
- shell.cp('-f', android_Certificate, target_cert_android);
119
- console.log("android_Certificate copied");
120
- } catch(err) {
121
- console.log("android_Certificate Failed");
122
- }
123
-
124
-
125
- }
126
- }
1
+ module.exports = function (context) {
2
+ var fs = require('fs');
3
+ var path = require('path');
4
+ var shell = require('shelljs');
5
+
6
+ var platformRoot = path.join(context.opts.projectRoot, 'platforms/android');
7
+ var platformRootios = path.join(context.opts.projectRoot, 'platforms/ios');
8
+
9
+ var root_cert = path.join(context.opts.projectRoot, 'res');
10
+ //var root_cert_ios = path.join(context.opts.projectRoot, 'res/ai_ios.cer');
11
+
12
+ const cordovaCommon = context.requireCordovaModule('cordova-common');
13
+ const appConfig = new cordovaCommon.ConfigParser('config.xml');
14
+ const appName = appConfig.name();
15
+ var APPICE_FIREBASE_UPDATE = appConfig.getPlatformPreference("APPICE_FIREBASE_UPDATE", "android");
16
+ var APPICE_APPLICATIONCLASS_INCLUDE = appConfig.getPlatformPreference("APPICE_APPLICATIONCLASS_INCLUDE", "android");
17
+ var MFP_PUSH = appConfig.getPlatformPreference("MFP_PUSH", "android");
18
+ var SSL_PINNING = appConfig.getPlatformPreference("SSL_PINNING", "android");
19
+
20
+
21
+ var project_properties = path.join(platformRoot, 'project.properties');
22
+ ///for SSL pinning
23
+
24
+ var appBuildGradlePath = path.join(platformRoot, 'app/build.gradle'); // Path to the app's build.gradle file
25
+ const pluginName = 'cordova-plugin-appice';
26
+ const pluginXmlPath = path.join(context.opts.projectRoot, 'plugins', pluginName, 'plugin.xml');
27
+ const sourceFileEntry = '<source-file src="src/android/AppICEMFPPush.java" target-dir="com/appice/cordova/" />';
28
+
29
+ if (MFP_PUSH === "true") {
30
+ var manifestFileNew = path.join(platformRoot, '/app/src/main/AndroidManifest.xml');
31
+
32
+ if (fs.existsSync(manifestFileNew)) {
33
+ try {
34
+ fs.readFile(manifestFileNew, 'utf8', function (err, data) {
35
+ if (err) {
36
+ throw new Error('Unable to find AndroidManifest.xml: ' + err);
37
+ }
38
+ var serviceTag = '<service android:exported="true" android:name="com.appice.cordova.AppICEMFPPush">';
39
+
40
+ if (data.indexOf(serviceTag) == -1) {
41
+ var result = data.replace(/<service android:exported="false" android:name="com.ibm.fcmtest.myIntentService">/g, serviceTag);
42
+ fs.writeFile(manifestFileNew, result, 'utf8', function (err) {
43
+ if (err) {
44
+ throw new Error('Unable to write into AndroidManifest.xml: ' + err);
45
+ }
46
+ });
47
+
48
+ }
49
+ });
50
+ } catch (err) {
51
+ }
52
+
53
+ // Add the dependency to the app's build.gradle file
54
+ try {
55
+ const buildGradleContent = fs.readFileSync(appBuildGradlePath, 'utf8');
56
+
57
+ // Dependencies to be added
58
+ const dependencies = [
59
+ "com.ibm.mobilefirstplatform.clientsdk.android:core:3.+",
60
+ "com.ibm.mobilefirstplatform.clientsdk.android:push:4.3.2"
61
+ ];
62
+
63
+ for (const dependency of dependencies) {
64
+ if (!buildGradleContent.includes(dependency)) {
65
+ const dependencyLine = `implementation '${dependency}'`;
66
+ fs.appendFileSync(appBuildGradlePath, '\n' + dependencyLine);
67
+ console.log(`Added dependency '${dependency}' to ${appBuildGradlePath}`);
68
+ } else {
69
+ console.log(`Dependency '${dependency}' already exists in ${appBuildGradlePath}`);
70
+ }
71
+ }
72
+ } catch (err) {
73
+ console.error(`Failed to modify ${appBuildGradlePath}: ${err}`);
74
+ }
75
+
76
+ try {
77
+ const pluginXmlContent = fs.readFileSync(pluginXmlPath, 'utf8');
78
+
79
+ if (pluginXmlContent.indexOf(sourceFileEntry) === -1) {
80
+ const platformPosition = pluginXmlContent.indexOf('<platform name="android">');
81
+ const updatedPluginXmlContent = pluginXmlContent.slice(0, platformPosition) + '\n' + sourceFileEntry + '\n' + pluginXmlContent.slice(platformPosition);
82
+
83
+ fs.writeFileSync(pluginXmlPath, updatedPluginXmlContent, 'utf8');
84
+ console.log(`Added <source-file> entry to ${pluginXmlPath}`);
85
+ } else {
86
+ console.log(`<source-file> entry already exists in ${pluginXmlPath}`);
87
+ }
88
+ } catch (err) {
89
+ console.error(`Failed to modify ${pluginXmlPath}: ${err}`);
90
+ }
91
+ } else {
92
+ var manifestFileNewRoot = path.join(platformRoot, 'AndroidManifest.xml');
93
+ if (fs.existsSync(manifestFileNewRoot)) {
94
+ try {
95
+ fs.readFile(manifestFileNewRoot, 'utf8', function (err, data) {
96
+ if (err) {
97
+ throw new Error('Unable to find AndroidManifest.xml: ' + err);
98
+ }
99
+ var serviceTag = '<service android:exported="true" android:name="com.appice.cordova.AppICEMFPPush">';
100
+
101
+ if (data.indexOf(serviceTag) == -1) {
102
+ var result = data.replace(/<service android:exported="false" android:name="com.ibm.fcmtest.myIntentService">/g, serviceTag);
103
+ fs.writeFile(manifestFileNewRoot, result, 'utf8', function (err) {
104
+ if (err) {
105
+ throw new Error('Unable to write into AndroidManifest.xml: ' + err);
106
+ }
107
+ });
108
+
109
+ }
110
+ });
111
+ } catch (err) {
112
+ }
113
+ }
114
+ }
115
+
116
+ if (fs.existsSync(project_properties)) {
117
+ try {
118
+ fs.readFile(project_properties, 'utf8', function (err, data) {
119
+ if (err) {
120
+ throw new Error('Unable to find project_properties: ' + err);
121
+ }
122
+ var modifiedBuildGradle = data;
123
+ var libmfp_prop = 'cordova.system.library.13=appice.io.android:libmfp:1.0.0'
124
+ //+ '\nimplementation appice.io.android:libmfp:+"';
125
+ if (data.indexOf(libmfp_prop) == -1) {
126
+ fs.appendFileSync(project_properties, '\n' + libmfp_prop);
127
+ }
128
+ });
129
+ }
130
+ catch (err) {
131
+ console.log("project_properties found :", err);
132
+ }
133
+ }
134
+ }
135
+
136
+ if (SSL_PINNING === "true") {
137
+
138
+ var target_cert_android = path.join(platformRoot, '/app/src/main/assets/');
139
+ var target_cert_ios = path.join(platformRootios, appName + '/Resources/');
140
+ //checking existing in android
141
+ if (fs.existsSync(target_cert_android + 'ai_android.pem')) {
142
+ try {
143
+ shell.rm('-Rf', target_cert_android + 'ai_android.pem');
144
+ } catch (err) {
145
+ }
146
+ }
147
+
148
+
149
+ //putting files in assest folder for android
150
+ var android_Certificate = path.join(root_cert, 'ai_android.pem');
151
+ try {
152
+ shell.cp('-f', android_Certificate, target_cert_android);
153
+ console.log("android_Certificate copied");
154
+ } catch (err) {
155
+ console.log("android_Certificate Failed");
156
+ }
157
+
158
+
159
+ }
160
+ }
@@ -1,39 +1,39 @@
1
- module.exports = function(context) {
2
-
3
- var fs =require ('fs');
4
- var path = require('path');
5
- var shell = require('shelljs');
6
-
7
- var platformRootios = path.join(context.opts.projectRoot, 'platforms/ios');
8
-
9
- var root_cert = path.join(context.opts.projectRoot, 'res');
10
- //var root_cert_ios = path.join(context.opts.projectRoot, 'res/ai_ios.cer');
11
-
12
- const cordovaCommon = context.requireCordovaModule('cordova-common');
13
- const appConfig = new cordovaCommon.ConfigParser('config.xml');
14
- const appName = appConfig.name();
15
-
16
- var SSL_PINNING=appConfig.getPlatformPreference("SSL_PINNING", "android");
17
- if(SSL_PINNING === "true"){
18
-
19
- var target_cert_ios = path.join(platformRootios, appName+'/Resources/');
20
-
21
-
22
- //checking in ios
23
- if (fs.existsSync(target_cert_ios+'ai_ios.der')) {
24
- try {
25
- shell.rm('-Rf', target_cert_ios+'ai_ios.der');
26
- } catch(err) {
27
- }
28
- }
29
-
30
- ////putting files in assest folder for ios
31
- var ios_Certificate=path.join(root_cert, 'ai_ios.der');
32
- try {
33
- shell.cp('-f', ios_Certificate, target_cert_ios);
34
- console.log("ios_Certificate copied");
35
- } catch(err) {
36
- console.log("ios_Certificate Failed");
37
- }
38
- }
1
+ module.exports = function (context) {
2
+
3
+ var fs = require('fs');
4
+ var path = require('path');
5
+ var shell = require('shelljs');
6
+
7
+ var platformRootios = path.join(context.opts.projectRoot, 'platforms/ios');
8
+
9
+ var root_cert = path.join(context.opts.projectRoot, 'res');
10
+ //var root_cert_ios = path.join(context.opts.projectRoot, 'res/ai_ios.cer');
11
+
12
+ const cordovaCommon = context.requireCordovaModule('cordova-common');
13
+ const appConfig = new cordovaCommon.ConfigParser('config.xml');
14
+ const appName = appConfig.name();
15
+
16
+ var SSL_PINNING = appConfig.getPlatformPreference("SSL_PINNING", "android");
17
+ if (SSL_PINNING === "true") {
18
+
19
+ var target_cert_ios = path.join(platformRootios, appName + '/Resources/');
20
+
21
+
22
+ //checking in ios
23
+ if (fs.existsSync(target_cert_ios + 'ai_ios.der')) {
24
+ try {
25
+ shell.rm('-Rf', target_cert_ios + 'ai_ios.der');
26
+ } catch (err) {
27
+ }
28
+ }
29
+
30
+ ////putting files in assest folder for ios
31
+ var ios_Certificate = path.join(root_cert, 'ai_ios.der');
32
+ try {
33
+ shell.cp('-f', ios_Certificate, target_cert_ios);
34
+ console.log("ios_Certificate copied");
35
+ } catch (err) {
36
+ console.log("ios_Certificate Failed");
37
+ }
38
+ }
39
39
  }