plugin.xml 6.21 KB
Newer Older
Chok's avatar
Chok committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
  xmlns:android="http://schemas.android.com/apk/res/android"
  id="@havesource/cordova-plugin-push" version="4.0.0-dev.0">

  <name>Cordova Push Plugin</name>
  <description>Enable receiving push notifications on Android, iOS and Windows devices. Android uses Firebase Cloud Messaging. iOS uses Apple APNS Notifications. Windows uses Microsoft WNS Notifications.</description>

  <license>MIT</license>

  <js-module src="www/push.js" name="PushNotification">
    <clobbers target="PushNotification"/>
  </js-module>

  <engines>
    <engine name="cordova" version=">=10.0.0"/>
    <engine name="cordova-android" version=">=9.0.0"/>
    <engine name="cordova-ios" version=">=6.0.0"/>
  </engines>

  <platform name="android">
    <hook type="before_compile" src="hooks/android/beforeCompile.js"/>

    <config-file target="res/xml/config.xml" parent="/*">
      <feature name="PushNotification">
        <param name="android-package" value="com.adobe.phonegap.push.PushPlugin"/>
      </feature>
    </config-file>

    <config-file target="AndroidManifest.xml" parent="/manifest">
      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.WAKE_LOCK"/>
      <uses-permission android:name="android.permission.VIBRATE"/>
      <uses-permission android:name="${applicationId}.permission.PushHandlerActivity"/>
      <permission android:name="${applicationId}.permission.PushHandlerActivity" android:protectionLevel="signature"></permission>
    </config-file>

    <config-file target="AndroidManifest.xml" parent="/manifest/application">
      <activity android:name="com.adobe.phonegap.push.PushHandlerActivity" android:exported="true" android:permission="${applicationId}.permission.PushHandlerActivity"/>
      <activity android:name="com.adobe.phonegap.push.BackgroundHandlerActivity" android:exported="true" android:permission="${applicationId}.permission.BackgroundHandlerActivity">
        <intent-filter>
          <action android:name="com.adobe.phonegap.push.background.MESSAGING_EVENT"/>
          <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
      </activity>

      <receiver android:name="com.adobe.phonegap.push.BackgroundActionButtonHandler"/>
      <receiver android:name="com.adobe.phonegap.push.PushDismissedHandler"/>

      <service android:name="com.adobe.phonegap.push.FCMService" android:exported="true">
        <intent-filter>
          <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
      </service>
    </config-file>

    <config-file target="config.xml" parent="/*">
      <preference name="AndroidXEnabled" value="true" />
      <preference name="GradlePluginGoogleServicesEnabled" value="true" />
      <preference name="GradlePluginGoogleServicesVersion" value="4.3.8" />

      <preference name="GradlePluginKotlinEnabled" value="true" />
      <preference name="GradlePluginKotlinVersion" value="1.5.20" />
    </config-file>

    <preference name="ANDROIDX_CORE_VERSION" default="1.6.+"/>
    <preference name="FCM_VERSION" default="23.+"/>

    <framework src="androidx.core:core:$ANDROIDX_CORE_VERSION" />
    <framework src="me.leolin:ShortcutBadger:1.1.22@aar"/>
    <framework src="com.google.firebase:firebase-messaging:$FCM_VERSION"/>

    <source-file src="src/android/com/adobe/phonegap/push/FCMService.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushConstants.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushHandlerActivity.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/BackgroundHandlerActivity.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushPlugin.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/BackgroundActionButtonHandler.kt" target-dir="java/com/adobe/phonegap/push/"/>
    <source-file src="src/android/com/adobe/phonegap/push/PushDismissedHandler.kt" target-dir="java/com/adobe/phonegap/push/"/>
  </platform>

  <platform name="browser">
    <js-module src="www/browser/push.js" name="BrowserPush">
      <clobbers target="PushNotification"/>
    </js-module>

    <asset src="src/browser/ServiceWorker.js" target="ServiceWorker.js"/>
    <asset src="src/browser/manifest.json" target="manifest.json"/>

    <hook type="after_prepare" src="hooks/browser/updateManifest.js"/>
  </platform>

  <platform name="ios">
    <preference name="IOS_FIREBASE_MESSAGING_VERSION" default="~> 8.1.1"/>

    <config-file target="config.xml" parent="/*">
      <feature name="PushNotification">
        <param name="ios-package" value="PushPlugin"/>
      </feature>
    </config-file>

    <config-file target="*-Info.plist" parent="UIBackgroundModes">
      <array>
        <string>remote-notification</string>
      </array>
    </config-file>

    <config-file target="*-Debug.plist" parent="aps-environment">
      <string>development</string>
    </config-file>

    <config-file target="*-Release.plist" parent="aps-environment">
      <string>production</string>
    </config-file>

    <source-file src="src/ios/AppDelegate+notification.m"/>
    <source-file src="src/ios/PushPlugin.m"/>
    <header-file src="src/ios/AppDelegate+notification.h"/>
    <header-file src="src/ios/PushPlugin.h"/>

    <framework src="PushKit.framework"/>

    <podspec>
      <config>
        <source url="https://cdn.cocoapods.org/"/>
      </config>
      <pods use-frameworks="true">
        <pod name="Firebase/Messaging" spec="$IOS_FIREBASE_MESSAGING_VERSION" />
      </pods>
    </podspec>
  </platform>

  <platform name="windows">
    <hook type="after_plugin_install" src="hooks/windows/setToastCapable.js"/>

    <js-module src="src/windows/PushPluginProxy.js" name="PushPlugin">
      <runs/>
    </js-module>

    <config-file target="config.xml" parent="/*">
      <preference name="WindowsToastCapable" value="true"/>
    </config-file>
  </platform>
</plugin>