l-22"> 22
+    <string>tmtlive-557ac</string>
23
+    <key>STORAGE_BUCKET</key>
24
+    <string>tmtlive-557ac.appspot.com</string>
25
+    <key>IS_ADS_ENABLED</key>
26
+    <false></false>
27
+    <key>IS_ANALYTICS_ENABLED</key>
28
+    <false></false>
29
+    <key>IS_APPINVITE_ENABLED</key>
30
+    <true></true>
31
+    <key>IS_GCM_ENABLED</key>
32
+    <true></true>
33
+    <key>IS_SIGNIN_ENABLED</key>
34
+    <true></true>
35
+    <key>GOOGLE_APP_ID</key>
36
+    <string>1:214019008700:ios:be7fb5f07aeed695c088b9</string>
37
+</dict>
38
+</plist>

+ 42 - 33
ios/App/App/Info.plist

@@ -45,38 +45,47 @@
45 45
 	</array>
46 46
 	<key>UIViewControllerBasedStatusBarAppearance</key>
47 47
 	<true/>
48
-    <key>CFBundleURLTypes</key>
49
-        <array>
50
-        <dict>
51
-            <key>CFBundleURLSchemes</key>
52
-            <array>
53
-            <string>fb200395709360570</string>
54
-            </array>
55
-        </dict>
56
-        </array>
57
-        <key>FacebookAppID</key>
58
-        <string>200395709360570</string>
59
-        <key>FacebookClientToken</key>
60
-        <string>a3ae16e80d605bab9483feaa4c523e84</string>
61
-        <key>FacebookDisplayName</key>
62
-        <string>tigermuaythai.live</string>
63
-        <key>LSApplicationQueriesSchemes</key>
64
-        <array>
65
-            <string>fbapi</string>
66
-            <string>fbapi20130214</string>
67
-            <string>fbapi20130410</string>
68
-            <string>fbapi20130702</string>
69
-            <string>fbapi20131010</string>
70
-            <string>fbapi20131219</string>
71
-            <string>fbapi20140410</string>
72
-            <string>fbapi20140116</string>
73
-            <string>fbapi20150313</string>
74
-            <string>fbapi20150629</string>
75
-            <string>fbapi20160328</string>
76
-            <string>fbauth</string>
77
-            <string>fb-messenger-share-api</string>
78
-            <string>fbauth2</string>
79
-            <string>fbshareextension</string>
80
-        </array>
48
+  <key>CFBundleURLTypes</key>
49
+  <array>
50
+    <dict>
51
+      <key>CFBundleURLSchemes</key>
52
+      <array>
53
+        <string>fb200395709360570</string>
54
+      </array>
55
+    </dict>
56
+    <dict>
57
+			<key>CFBundleURLName</key>
58
+			<string>net.simplico.tmtlive</string>
59
+			<key>CFBundleURLSchemes</key>
60
+			<array>
61
+				<string>tmtlive</string>
62
+				<string>com.googleusercontent.apps.496323526366-khm7rkn7rthnauaailuth9sdid4of8d8</string>
63
+			</array>
64
+		</dict>
65
+  </array>
66
+  <key>FacebookAppID</key>
67
+  <string>200395709360570</string>
68
+  <key>FacebookClientToken</key>
69
+  <string>a3ae16e80d605bab9483feaa4c523e84</string>
70
+  <key>FacebookDisplayName</key>
71
+  <string>tigermuaythai.live</string>
72
+  <key>LSApplicationQueriesSchemes</key>
73
+  <array>
74
+    <string>fbapi</string>
75
+    <string>fbapi20130214</string>
76
+    <string>fbapi20130410</string>
77
+    <string>fbapi20130702</string>
78
+    <string>fbapi20131010</string>
79
+    <string>fbapi20131219</string>
80
+    <string>fbapi20140410</string>
81
+    <string>fbapi20140116</string>
82
+    <string>fbapi20150313</string>
83
+    <string>fbapi20150629</string>
84
+    <string>fbapi20160328</string>
85
+    <string>fbauth</string>
86
+    <string>fb-messenger-share-api</string>
87
+    <string>fbauth2</string>
88
+    <string>fbshareextension</string>
89
+  </array>
81 90
 </dict>
82 91
 </plist>

Datei-Diff unterdrückt, da er zu groß ist
+ 13 - 0
ios/App/App/google-services.json


+ 3 - 0
ios/App/Podfile

@@ -16,12 +16,15 @@ def capacitor_pods
16 16
   pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
17 17
   pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
18 18
   pod 'CapacitorPreferences', :path => '../../node_modules/@capacitor/preferences'
19
+  pod 'CapacitorPushNotifications', :path => '../../node_modules/@capacitor/push-notifications'
19 20
   pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
21
+  pod 'CodetrixStudioCapacitorGoogleAuth', :path => '../../node_modules/@codetrix-studio/capacitor-google-auth'
20 22
 end
21 23
 
22 24
 target 'App' do
23 25
   capacitor_pods
24 26
   # Add your Pods here
27
+  pod 'Firebase/Messaging' # Add this line
25 28
 end
26 29
 
27 30
 post_install do |installer|

+ 107 - 1
ios/App/Podfile.lock

@@ -1,4 +1,10 @@
1 1
 PODS:
2
+  - AppAuth (1.6.2):
3
+    - AppAuth/Core (= 1.6.2)
4
+    - AppAuth/ExternalUserAgent (= 1.6.2)
5
+  - AppAuth/Core (1.6.2)
6
+  - AppAuth/ExternalUserAgent (1.6.2):
7
+    - AppAuth/Core
2 8
   - Capacitor (5.5.0):
3 9
     - CapacitorCordova
4 10
   - CapacitorApp (5.0.6):
@@ -14,8 +20,13 @@ PODS:
14 20
     - Capacitor
15 21
   - CapacitorPreferences (5.0.6):
16 22
     - Capacitor
23
+  - CapacitorPushNotifications (5.1.0):
24
+    - Capacitor
17 25
   - CapacitorStatusBar (5.0.6):
18 26
     - Capacitor
27
+  - CodetrixStudioCapacitorGoogleAuth (0.0.1):
28
+    - Capacitor
29
+    - GoogleSignIn (~> 6.2.4)
19 30
   - FBAEMKit (16.1.3):
20 31
     - FBSDKCoreKit_Basics (= 16.1.3)
21 32
   - FBSDKCoreKit (16.1.3):
@@ -24,6 +35,66 @@ PODS:
24 35
   - FBSDKCoreKit_Basics (16.1.3)
25 36
   - FBSDKLoginKit (16.1.3):
26 37
     - FBSDKCoreKit (= 16.1.3)
38
+  - Firebase/CoreOnly (10.17.0):
39
+    - FirebaseCore (= 10.17.0)
40
+  - Firebase/Messaging (10.17.0):
41
+    - Firebase/CoreOnly
42
+    - FirebaseMessaging (~> 10.17.0)
43
+  - FirebaseCore (10.17.0):
44
+    - FirebaseCoreInternal (~> 10.0)
45
+    - GoogleUtilities/Environment (~> 7.8)
46
+    - GoogleUtilities/Logger (~> 7.8)
47
+  - FirebaseCoreInternal (10.17.0):
48
+    - "GoogleUtilities/NSData+zlib (~> 7.8)"
49
+  - FirebaseInstallations (10.17.0):
50
+    - FirebaseCore (~> 10.0)
51
+    - GoogleUtilities/Environment (~> 7.8)
52
+    - GoogleUtilities/UserDefaults (~> 7.8)
53
+    - PromisesObjC (~> 2.1)
54
+  - FirebaseMessaging (10.17.0):
55
+    - FirebaseCore (~> 10.0)
56
+    - FirebaseInstallations (~> 10.0)
57
+    - GoogleDataTransport (~> 9.2)
58
+    - GoogleUtilities/AppDelegateSwizzler (~> 7.8)
59
+    - GoogleUtilities/Environment (~> 7.8)
60
+    - GoogleUtilities/Reachability (~> 7.8)
61
+    - GoogleUtilities/UserDefaults (~> 7.8)
62
+    - nanopb (< 2.30910.0, >= 2.30908.0)
63
+  - GoogleDataTransport (9.2.5):
64
+    - GoogleUtilities/Environment (~> 7.7)
65
+    - nanopb (< 2.30910.0, >= 2.30908.0)
66
+    - PromisesObjC (< 3.0, >= 1.2)
67
+  - GoogleSignIn (6.2.4):
68
+    - AppAuth (~> 1.5)
69
+    - GTMAppAuth (~> 1.3)
70
+    - GTMSessionFetcher/Core (< 3.0, >= 1.1)
71
+  - GoogleUtilities/AppDelegateSwizzler (7.11.6):
72
+    - GoogleUtilities/Environment
73
+    - GoogleUtilities/Logger
74
+    - GoogleUtilities/Network
75
+  - GoogleUtilities/Environment (7.11.6):
76
+    - PromisesObjC (< 3.0, >= 1.2)
77
+  - GoogleUtilities/Logger (7.11.6):
78
+    - GoogleUtilities/Environment
79
+  - GoogleUtilities/Network (7.11.6):
80
+    - GoogleUtilities/Logger
81
+    - "GoogleUtilities/NSData+zlib"
82
+    - GoogleUtilities/Reachability
83
+  - "GoogleUtilities/NSData+zlib (7.11.6)"
84
+  - GoogleUtilities/Reachability (7.11.6):
85
+    - GoogleUtilities/Logger
86
+  - GoogleUtilities/UserDefaults (7.11.6):
87
+    - GoogleUtilities/Logger
88
+  - GTMAppAuth (1.3.1):
89
+    - AppAuth/Core (~> 1.6)
90
+    - GTMSessionFetcher/Core (< 3.0, >= 1.5)
91
+  - GTMSessionFetcher/Core (2.3.0)
92
+  - nanopb (2.30909.1):
93
+    - nanopb/decode (= 2.30909.1)
94
+    - nanopb/encode (= 2.30909.1)
95
+  - nanopb/decode (2.30909.1)
96
+  - nanopb/encode (2.30909.1)
97
+  - PromisesObjC (2.3.1)
27 98
 
28 99
 DEPENDENCIES:
29 100
   - "Capacitor (from `../../node_modules/@capacitor/ios`)"
@@ -33,14 +104,30 @@ DEPENDENCIES:
33 104
   - "CapacitorHaptics (from `../../node_modules/@capacitor/haptics`)"
34 105
   - "CapacitorKeyboard (from `../../node_modules/@capacitor/keyboard`)"
35 106
   - "CapacitorPreferences (from `../../node_modules/@capacitor/preferences`)"
107
+  - "CapacitorPushNotifications (from `../../node_modules/@capacitor/push-notifications`)"
36 108
   - "CapacitorStatusBar (from `../../node_modules/@capacitor/status-bar`)"
109
+  - "CodetrixStudioCapacitorGoogleAuth (from `../../node_modules/@codetrix-studio/capacitor-google-auth`)"
110
+  - Firebase/Messaging
37 111
 
38 112
 SPEC REPOS:
39 113
   trunk:
114
+    - AppAuth
40 115
     - FBAEMKit
41 116
     - FBSDKCoreKit
42 117
     - FBSDKCoreKit_Basics
43 118
     - FBSDKLoginKit
119
+    - Firebase
120
+    - FirebaseCore
121
+    - FirebaseCoreInternal
122
+    - FirebaseInstallations
123
+    - FirebaseMessaging
124
+    - GoogleDataTransport
125
+    - GoogleSignIn
126
+    - GoogleUtilities
127
+    - GTMAppAuth
128
+    - GTMSessionFetcher
129
+    - nanopb
130
+    - PromisesObjC
44 131
 
45 132
 EXTERNAL SOURCES:
46 133
   Capacitor:
@@ -57,10 +144,15 @@ EXTERNAL SOURCES:
57 144
     :path: "../../node_modules/@capacitor/keyboard"
58 145
   CapacitorPreferences:
59 146
     :path: "../../node_modules/@capacitor/preferences"
147
+  CapacitorPushNotifications:
148
+    :path: "../../node_modules/@capacitor/push-notifications"
60 149
   CapacitorStatusBar:
61 150
     :path: "../../node_modules/@capacitor/status-bar"
151
+  CodetrixStudioCapacitorGoogleAuth:
152
+    :path: "../../node_modules/@codetrix-studio/capacitor-google-auth"
62 153
 
63 154
 SPEC CHECKSUMS:
155
+  AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570
64 156
   Capacitor: 57890b363df14d5d2d5d8461aa23e886cb34da2a
65 157
   CapacitorApp: 024e1b1bea5f883d79f6330d309bc441c88ad04a
66 158
   CapacitorCommunityFacebookLogin: c0e2bb54cb567d90443a80ae20569fdac0df3f89
@@ -68,12 +160,26 @@ SPEC CHECKSUMS:
68 160
   CapacitorHaptics: 1fffc1217c7e64a472d7845be50fb0c2f7d4204c
69 161
   CapacitorKeyboard: b978154b024a5f65e044908e37d15b7de58b9d12
70 162
   CapacitorPreferences: f03954bcb0ff09c792909e46bff88e3183c16b10
163
+  CapacitorPushNotifications: b31e326c6e4eb216a622041d6ca21a973f34943f
71 164
   CapacitorStatusBar: 565c0a1ebd79bb40d797606a8992b4a105885309
165
+  CodetrixStudioCapacitorGoogleAuth: fcce058390347c1ce5d8ac4764bdf1f5c1ee233b
72 166
   FBAEMKit: af2972f39bb0f3f7c45998f435b007833c32ffb2
73 167
   FBSDKCoreKit: 19e2e18b3be578d7a51fed8fdd8c152bef0b9511
74 168
   FBSDKCoreKit_Basics: dd9826ce3c9fd9f8cdf8dbbd0ef0a53e6c0c9e7e
75 169
   FBSDKLoginKit: c395c63a1a6cf4a8a1e6103fd94b8c46329ee81c
170
+  Firebase: f4ac0b02927af9253ae094d23deecf0890da7374
171
+  FirebaseCore: 534544dd98cabcf4bf8598d88ec683b02319a528
172
+  FirebaseCoreInternal: 2cf9202e226e3f78d2bf6d56c472686b935bfb7f
173
+  FirebaseInstallations: 9387bf15abfc69a714f54e54f74a251264fdb79b
174
+  FirebaseMessaging: 1367b28c0c83a63072af4a711328fcc2e6899902
175
+  GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2
176
+  GoogleSignIn: 5651ce3a61e56ca864160e79b484cd9ed3f49b7a
177
+  GoogleUtilities: 202e7a9f5128accd11160fb9c19612de1911aa19
178
+  GTMAppAuth: 0ff230db599948a9ad7470ca667337803b3fc4dd
179
+  GTMSessionFetcher: 3a63d75eecd6aa32c2fc79f578064e1214dfdec2
180
+  nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5
181
+  PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4
76 182
 
77
-PODFILE CHECKSUM: c9736b063f76e0be20a97ef4e5e07cd2323fa896
183
+PODFILE CHECKSUM: 13a486d397817692d7e7744cf0c6e77b81469655
78 184
 
79 185
 COCOAPODS: 1.12.1

+ 18 - 0
package-lock.json

@@ -15,7 +15,9 @@
15 15
         "@capacitor/ios": "5.5.0",
16 16
         "@capacitor/keyboard": "5.0.6",
17 17
         "@capacitor/preferences": "^5.0.6",
18
+        "@capacitor/push-notifications": "^5.1.0",
18 19
         "@capacitor/status-bar": "5.0.6",
20
+        "@codetrix-studio/capacitor-google-auth": "^3.3.4",
19 21
         "@ionic/vue": "^7.0.0",
20 22
         "@ionic/vue-router": "^7.0.0",
21 23
         "@vimeo/player": "^2.20.1",
@@ -1908,6 +1910,14 @@
1908 1910
         "@capacitor/core": "^5.0.0"
1909 1911
       }
1910 1912
     },
1913
+    "node_modules/@capacitor/push-notifications": {
1914
+      "version": "5.1.0",
1915
+      "resolved": "https://registry.npmjs.org/@capacitor/push-notifications/-/push-notifications-5.1.0.tgz",
1916
+      "integrity": "sha512-Laxi5TQbwTqQFNJZdyyfJJqb+OVZz+0VRtW4uhM+u5TKWuXCYw/yrctXuIpG+VFUptvtPG7ic7+0WcBs+sQ17Q==",
1917
+      "peerDependencies": {
1918
+        "@capacitor/core": "^5.0.0"
1919
+      }
1920
+    },
1911 1921
     "node_modules/@capacitor/status-bar": {
1912 1922
       "version": "5.0.6",
1913 1923
       "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-5.0.6.tgz",
@@ -1916,6 +1926,14 @@
1916 1926
         "@capacitor/core": "^5.0.0"
1917 1927
       }
1918 1928
     },
1929
+    "node_modules/@codetrix-studio/capacitor-google-auth": {
1930
+      "version": "3.3.4",
1931
+      "resolved": "https://registry.npmjs.org/@codetrix-studio/capacitor-google-auth/-/capacitor-google-auth-3.3.4.tgz",
1932
+      "integrity": "sha512-R9kTWK5x2bT+gXV1ia48Xt/rS1RPXrVVPDCeX4mpGFyIyjdx1FmuAkHeFNsSQ4sGDKkjCWnXf6z+ikcKnusz7g==",
1933
+      "peerDependencies": {
1934
+        "@capacitor/core": "^5.0.0"
1935
+      }
1936
+    },
1919 1937
     "node_modules/@colors/colors": {
1920 1938
       "version": "1.5.0",
1921 1939
       "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",

+ 2 - 0
package.json

@@ -19,7 +19,9 @@
19 19
     "@capacitor/ios": "5.5.0",
20 20
     "@capacitor/keyboard": "5.0.6",
21 21
     "@capacitor/preferences": "^5.0.6",
22
+    "@capacitor/push-notifications": "^5.1.0",
22 23
     "@capacitor/status-bar": "5.0.6",
24
+    "@codetrix-studio/capacitor-google-auth": "^3.3.4",
23 25
     "@ionic/vue": "^7.0.0",
24 26
     "@ionic/vue-router": "^7.0.0",
25 27
     "@vimeo/player": "^2.20.1",

+ 9 - 1
src/App.vue

@@ -5,5 +5,13 @@
5 5
 </template>
6 6
 
7 7
 <script setup lang="ts">
8
-import { IonApp, IonRouterOutlet } from '@ionic/vue';
8
+import { IonApp, IonRouterOutlet, onIonViewWillEnter } from '@ionic/vue';
9
+import { defineComponent, onMounted } from 'vue';
10
+
11
+
12
+
13
+onIonViewWillEnter(() => {
14
+  console.log("Init On Mouting")
15
+});
16
+
9 17
 </script>

+ 14 - 0
src/settings.ts

@@ -63,3 +63,17 @@ export const listMats = async  () => {
63 63
   console.log(data)
64 64
   return data.results
65 65
 }
66
+
67
+export const storeAPNToken = async (device_token) => {
68
+  
69
+  const token = await Preferences.get({ key: 'token' });
70
+  console.log("token = ", token)
71
+  const { data } = await axios.post(BASE_URL + "backend/api/device_tokens/",{token: device_token},
72
+  {
73
+    headers: { 
74
+    'Authorization': `Token ${token.value}`
75
+    }
76
+  })
77
+  console.log(data)
78
+  return data
79
+}

+ 36 - 2
src/views/ProfilePage.vue

@@ -7,8 +7,13 @@
7 7
     </ion-header>
8 8
     <ion-content>
9 9
       <div class="example-content">Listen now content</div>
10
-      <ion-button @click='fbLogout' v-if='isLogin'>Facebook Logout</ion-button>
11
-      <ion-button @click='fbLogin' v-else>Facebook Login</ion-button>
10
+      <template v-if="isLogin">
11
+      <ion-button @click='fbLogout'>Logout</ion-button>
12
+      </template>
13
+      <template v-else>
14
+        <ion-button @click='fbLogin'>Facebook Login</ion-button>
15
+        <ion-button @click='ggLogin'>Google Login</ion-button>
16
+      </template>
12 17
     </ion-content>
13 18
   </ion-page>
14 19
 </template>
@@ -16,6 +21,12 @@
16 21
 <script setup lang="ts">
17 22
 import { IonPage, IonHeader, IonToolbar, IonTitle, IonContent, IonButton, onIonViewWillEnter } from '@ionic/vue';
18 23
 import ExploreContainer from '@/components/ExploreContainer.vue';
24
+import { defineComponent, onMounted } from 'vue';
25
+import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';
26
+
27
+onMounted(() => {
28
+  GoogleAuth.initialize();
29
+});
19 30
 
20 31
 import {
21 32
   FacebookLogin,
@@ -33,6 +44,15 @@ const FACEBOOK_PERMISSIONS = [
33 44
 
34 45
 const isLogin = ref(false)
35 46
 
47
+const ggLogin = async () => {
48
+  const response = await GoogleAuth.signIn();
49
+  console.log(response);
50
+  console.log(response.accessToken)
51
+  if( response.authentication.accessToken ) {
52
+    isLogin.value = true
53
+  }
54
+}
55
+
36 56
 const fbLogin = async () => {
37 57
   const result = await (<FacebookLoginResponse>(
38 58
     FacebookLogin.login({ permissions: FACEBOOK_PERMISSIONS })
@@ -60,6 +80,7 @@ onIonViewWillEnter(async () => {
60 80
   }else {
61 81
     isLogin.value = false
62 82
   }
83
+  ggCheckLogin()
63 84
 
64 85
 })
65 86
 const getProfile = async () => {
@@ -69,4 +90,17 @@ const getProfile = async () => {
69 90
 
70 91
   console.log(`Facebook user's email is ${result.email}`);
71 92
 }
93
+const ggCheckLogin = async() => {
94
+    GoogleAuth.refresh()
95
+        .then((data) => {
96
+            if (data.accessToken) {
97
+                isLogin.value = true
98
+            }
99
+        })
100
+        .catch((error) => {
101
+            if (error.type === 'userLoggedOut') {
102
+                //this.signin()
103
+            }
104
+        });
105
+}
72 106
 </script>

+ 44 - 1
src/views/Tab1Page.vue

@@ -79,10 +79,13 @@ import { IonPage, IonHeader, IonToolbar, IonTitle, IonContent, IonIcon, onIonVie
79 79
 import ExploreContainer  from '@/components/ExploreContainer.vue';
80 80
 import { CapacitorHttp } from '@capacitor/core';
81 81
 import { ref } from 'vue';
82
-import { TOKEN, getProducts, setToken, getObject, getToken, getTrainers, listMats } from '@/settings';
82
+import { TOKEN, getProducts, setToken, getObject, getToken, getTrainers, listMats, storeAPNToken } from '@/settings';
83 83
 //import VueCoreVideoPlayer from 'vue-core-video-player'
84 84
 import { vueVimeoPlayer } from 'vue-vimeo-player'
85 85
 
86
+import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';
87
+
88
+import { PushNotifications } from '@capacitor/push-notifications';
86 89
 
87 90
 import Player from '@vimeo/player';
88 91
 
@@ -127,6 +130,9 @@ const mats = ref()
127 130
     mats.value = await listMats()
128 131
     console.log(" trainers => ", trainers)
129 132
 
133
+    GoogleAuth.initialize();
134
+    registerNotifications()
135
+    addListeners()
130 136
   })
131 137
 
132 138
   onIonViewWillLeave(() => {
@@ -145,4 +151,41 @@ const mats = ref()
145 151
     const response: HttpResponse = await CapacitorHttp.get(options);
146 152
     console.log(response)
147 153
   }
154
+const addListeners = async () => {
155
+  await PushNotifications.addListener('registration', token => {
156
+    console.info('Registration token: ', token.value);
157
+    storeAPNToken(token.value)
158
+  });
159
+
160
+  await PushNotifications.addListener('registrationError', err => {
161
+    console.error('Registration error: ', err.error);
162
+  });
163
+
164
+  await PushNotifications.addListener('pushNotificationReceived', notification => {
165
+    console.log('Push notification received: ', notification);
166
+  });
167
+
168
+  await PushNotifications.addListener('pushNotificationActionPerformed', notification => {
169
+    console.log('Push notification action performed', notification.actionId, notification.inputValue);
170
+  });
171
+}
172
+
173
+const registerNotifications = async () => {
174
+  let permStatus = await PushNotifications.checkPermissions();
175
+
176
+  if (permStatus.receive === 'prompt') {
177
+    permStatus = await PushNotifications.requestPermissions();
178
+  }
179
+
180
+  if (permStatus.receive !== 'granted') {
181
+    throw new Error('User denied permissions!');
182
+  }
183
+
184
+  await PushNotifications.register();
185
+}
186
+
187
+const getDeliveredNotifications = async () => {
188
+  const notificationList = await PushNotifications.getDeliveredNotifications();
189
+  console.log('delivered notifications', notificationList);
190
+}
148 191
 </script>

golf/tge - Gogs: Simplico Git Service

Нет описания

LICENSE 1.1KB

12345678910111213141516171819202122
  1. The MIT License (MIT)
  2. Copyright (c) 2014-2017, Jon Schlinkert.
  3. Permission is hereby granted, free of charge, to any person obtaining a copy
  4. of this software and associated documentation files (the "Software"), to deal
  5. in the Software without restriction, including without limitation the rights
  6. to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. copies of the Software, and to permit persons to whom the Software is
  8. furnished to do so, subject to the following conditions:
  9. The above copyright notice and this permission notice shall be included in
  10. all copies or substantial portions of the Software.
  11. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  12. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  13. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  14. AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  15. LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  16. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  17. THE SOFTWARE.