Skip to content

Commit b4c76e8

Browse files
committed
finished base feature for mobile
1 parent b2af96e commit b4c76e8

File tree

13 files changed

+171
-68
lines changed

13 files changed

+171
-68
lines changed

example/.bundle/config

Lines changed: 0 additions & 2 deletions
This file was deleted.

example/.ruby-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2.7.8

example/Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ ruby ">= 2.6.10"
77
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
88
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
99
gem 'xcodeproj', '< 1.26.0'
10+
gem 'concurrent-ruby', '1.3.4'

example/Gemfile.lock

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,28 @@ GEM
55
base64
66
nkf
77
rexml
8-
activesupport (6.1.7.10)
8+
activesupport (7.1.5.1)
9+
base64
10+
benchmark (>= 0.3)
11+
bigdecimal
912
concurrent-ruby (~> 1.0, >= 1.0.2)
13+
connection_pool (>= 2.2.5)
14+
drb
1015
i18n (>= 1.6, < 2)
16+
logger (>= 1.4.2)
1117
minitest (>= 5.1)
18+
mutex_m
19+
securerandom (>= 0.3)
1220
tzinfo (~> 2.0)
13-
zeitwerk (~> 2.3)
1421
addressable (2.8.7)
1522
public_suffix (>= 2.0.2, < 7.0)
1623
algoliasearch (1.27.5)
1724
httpclient (~> 2.8, >= 2.8.3)
1825
json (>= 1.5.1)
1926
atomos (0.1.3)
2027
base64 (0.2.0)
28+
benchmark (0.4.0)
29+
bigdecimal (3.1.9)
2130
claide (1.1.0)
2231
cocoapods (1.15.2)
2332
addressable (~> 2.8)
@@ -57,7 +66,9 @@ GEM
5766
netrc (~> 0.11)
5867
cocoapods-try (1.2.0)
5968
colored2 (3.1.2)
60-
concurrent-ruby (1.3.5)
69+
concurrent-ruby (1.3.4)
70+
connection_pool (2.5.0)
71+
drb (2.2.1)
6172
escape (0.0.4)
6273
ethon (0.16.0)
6374
ffi (>= 1.15.0)
@@ -68,16 +79,19 @@ GEM
6879
httpclient (2.8.3)
6980
i18n (1.14.7)
7081
concurrent-ruby (~> 1.0)
71-
json (2.7.6)
82+
json (2.9.1)
83+
logger (1.6.5)
7284
minitest (5.25.4)
7385
molinillo (0.8.0)
86+
mutex_m (0.3.0)
7487
nanaimo (0.3.0)
7588
nap (1.1.0)
7689
netrc (0.11.0)
7790
nkf (0.2.0)
7891
public_suffix (4.0.7)
7992
rexml (3.4.0)
8093
ruby-macho (2.5.1)
94+
securerandom (0.3.2)
8195
typhoeus (1.4.1)
8296
ethon (>= 0.9.0)
8397
tzinfo (2.0.6)
@@ -89,18 +103,18 @@ GEM
89103
colored2 (~> 3.1)
90104
nanaimo (~> 0.3.0)
91105
rexml (>= 3.3.6, < 4.0)
92-
zeitwerk (2.6.18)
93106

94107
PLATFORMS
95108
ruby
96109

97110
DEPENDENCIES
98111
activesupport (>= 6.1.7.5, != 7.1.0)
99112
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
113+
concurrent-ruby (= 1.3.4)
100114
xcodeproj (< 1.26.0)
101115

102116
RUBY VERSION
103-
ruby 2.6.10p210
117+
ruby 2.7.8p225
104118

105119
BUNDLED WITH
106-
1.17.2
120+
2.1.4

example/ios/.xcode.env.local

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export NODE_BINARY=/Users/narongritkanhanoi/.nvm/versions/node/v22.13.0/bin/node
1+
export NODE_BINARY=/Users/heart/.nvm/versions/node/v22.13.0/bin/node

example/ios/PamReactNativeExample.xcodeproj/project.pbxproj

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,7 @@
470470
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
471471
CLANG_ENABLE_MODULES = YES;
472472
CURRENT_PROJECT_VERSION = 1;
473+
DEVELOPMENT_TEAM = 3W74L73E58;
473474
ENABLE_BITCODE = NO;
474475
INFOPLIST_FILE = PamReactNativeExample/Info.plist;
475476
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
@@ -498,6 +499,7 @@
498499
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
499500
CLANG_ENABLE_MODULES = YES;
500501
CURRENT_PROJECT_VERSION = 1;
502+
DEVELOPMENT_TEAM = 3W74L73E58;
501503
INFOPLIST_FILE = PamReactNativeExample/Info.plist;
502504
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
503505
LD_RUNPATH_SEARCH_PATHS = (
@@ -586,10 +588,7 @@
586588
"-DFOLLY_CFG_NO_COROUTINES=1",
587589
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
588590
);
589-
OTHER_LDFLAGS = (
590-
"$(inherited)",
591-
" ",
592-
);
591+
OTHER_LDFLAGS = "$(inherited) ";
593592
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
594593
SDKROOT = iphoneos;
595594
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
@@ -658,10 +657,7 @@
658657
"-DFOLLY_CFG_NO_COROUTINES=1",
659658
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
660659
);
661-
OTHER_LDFLAGS = (
662-
"$(inherited)",
663-
" ",
664-
);
660+
OTHER_LDFLAGS = "$(inherited) ";
665661
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
666662
SDKROOT = iphoneos;
667663
USE_HERMES = true;

example/ios/Podfile.lock

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1767,66 +1767,66 @@ SPEC CHECKSUMS:
17671767
fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be
17681768
glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a
17691769
hermes-engine: 1949ca944b195a8bde7cbf6316b9068e19cf53c6
1770-
pam-react-native: 36107e6c60a7bd93d01b6175fab25b7662ab648a
1770+
pam-react-native: 5fd247e9915c62966e7aa383042f17f624d04d69
17711771
RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648
17721772
RCTDeprecation: 063fc281b30b7dc944c98fe53a7e266dab1a8706
17731773
RCTRequired: 8eda2a5a745f6081157a4f34baac40b65fe02b31
17741774
RCTTypeSafety: 0f96bf6c99efc33eb43352212703854933f22930
17751775
React: 1d3d5bada479030961d513fb11e42659b30e97ff
17761776
React-callinvoker: 682c610b9e9d3b93bd8d0075eacb2e6aa304d3e0
1777-
React-Core: 10420b32e62acf6b3aa0a570e45566001175c777
1778-
React-CoreModules: aad977a7dbff83aa707c4045e5db81446a511cca
1779-
React-cxxreact: 1bee1b97e7d537f1a33d9eb68c9426c1fc1a4e3c
1777+
React-Core: 9f33c0fc7776a5796d4dae09c363bd58e6a27efe
1778+
React-CoreModules: 91afb654834f0a1f48fb26dd1f4d1a1460c44def
1779+
React-cxxreact: c7491114266a70f8215306f1d0c4b54a811e77cf
17801780
React-debug: 4ae2e95c2d392cca29939a3a2f2b4320ddff3e59
1781-
React-defaultsnativemodule: b585565214178c5780b54e4d56815d65782eac81
1782-
React-domnativemodule: 03fd1847e49505aa9024acbe4f0811e441dc89a2
1783-
React-Fabric: fc0898bb601b03ed41ab0df3e7b1a4acd05a6cff
1784-
React-FabricComponents: 13e78253b210d112b3ffddca5b7323db7f254358
1785-
React-FabricImage: a86ff938570a06c2a9fbf00ff0b00195f0bd4aba
1781+
React-defaultsnativemodule: 43d27f1844b4c18fc03fa4fa35ea2f1c48d64237
1782+
React-domnativemodule: bca178dd0ce1532f75be783f6f2923f675a778ae
1783+
React-Fabric: d6bc0222335270eb76c28dd5036c03a010c04d51
1784+
React-FabricComponents: 05eec9e2cf998be793daaee8fa8a8ea6d1187785
1785+
React-FabricImage: 3a12374b0aedda71c7ef6bd64b59479b8bb3fe05
17861786
React-featureflags: 5670e0dcdc17ba2515963d117dacc13d5b69c431
1787-
React-featureflagsnativemodule: 79dea40c60cdc0356aadc67a099bba0af8c34e4f
1788-
React-graphics: 04eed50a115e750e4644c1e955f32bec57f6a235
1789-
React-hermes: add932964f5ef024c86352dcc0dc427e6309642e
1790-
React-idlecallbacksnativemodule: 3e8d5085a21eb2f70ac64ff9817f8f8a603518a9
1791-
React-ImageManager: 3239badd14cc602baf836b5d7151ffa90393deae
1792-
React-jserrorhandler: 81ac36638e02c33a9df0bdbeec464d2e699ac8a9
1793-
React-jsi: 690f3742db66cab8d5219bcfbc19fee112c6bb0c
1794-
React-jsiexecutor: a060f7e989da21e2478f652d7799e3b5ae5db262
1795-
React-jsinspector: 0eb6ea6f6b1e42edeab4bcad092d37ef748e337a
1796-
React-jsitracing: 737a69a469e2bc821cf8ae11977bded522393719
1797-
React-logger: 162c09cc432b02d4a0db31b1d98f6df5243a2679
1798-
React-Mapbuffer: f760d2229640be48cb3c2d4832b5bbc3018123fc
1799-
React-microtasksnativemodule: 1364ae5354f51b3ecee8eb718b5b6d1686d2ff4d
1787+
React-featureflagsnativemodule: bb13129d1427327b2eb8cc13d3879363a4cd8326
1788+
React-graphics: 659968f797257c0071ddff28a2d094c8e5c5899c
1789+
React-hermes: 6eb81c6f72c25d9058b6030227d0fcc1f741a807
1790+
React-idlecallbacksnativemodule: 551b7a89b46041c746640fe13eacf39c1b169709
1791+
React-ImageManager: e3d0270c82bf39432da2aff2fcd60dd16b308689
1792+
React-jserrorhandler: f60c9b68b4d4ac1449bddc2553610708e939ddee
1793+
React-jsi: 47528a2928f38fe15e3d06a96de886e1a779ffc7
1794+
React-jsiexecutor: 88a141c4dc821e1b2aa7ecc7d6af7b186e8455a2
1795+
React-jsinspector: c26cf4118ea7c1aae721d2cde5acf3b2cdceb814
1796+
React-jsitracing: 810d0465c3455e352a71147c18332b1cba1d1410
1797+
React-logger: d42a53754a7252cc7a851315f0da2e46b450ea92
1798+
React-Mapbuffer: 89885d1518433a462fe64b68bf5e097997380090
1799+
React-microtasksnativemodule: 36341e09dcd1df535503e6ed2ddf88f10da56d52
18001800
React-nativeconfig: 539ff4de6ce3b694e8e751080568c281c84903ce
1801-
React-NativeModulesApple: 771cc40b086281b820fe455fedebbe4341fd0c90
1802-
React-perflogger: 4e80a5b8d61dfb38024e7d5b8efaf9ce1037d31f
1803-
React-performancetimeline: 1dcacc31d81f790f43a2d434ec95b0f864582329
1801+
React-NativeModulesApple: 702246817c286d057e23fe4b1302019796e62521
1802+
React-perflogger: f260e2de95f9dbd002035251559c13bf1f0643d4
1803+
React-performancetimeline: 957075cead70fe9536a327eb4f842b3d8982f2ec
18041804
React-RCTActionSheet: ed5a845eae98fe455b9a1d71f057d626e2f3f1c5
1805-
React-RCTAnimation: 0cda303ef8ca5a2d0ee9e425f188cc9fc1d2e20f
1806-
React-RCTAppDelegate: 1edcdebdaebf5120bdaa9d54bc40789714be3719
1807-
React-RCTBlob: dab83a3c22210e5c7a8267834c68e6cf94bc1ce2
1808-
React-RCTFabric: 19ba31d6b913b8b4aa8b27e4d6f5dc8ebd93a438
1809-
React-RCTImage: b9c3d2cff3b8214322022cdf8afb92ff978bb92e
1810-
React-RCTLinking: e58c4fa216f9ac87ed3d4a0cce03905df67adec0
1811-
React-RCTNetwork: 9f206fa039e107f51ddfac133df79105643ea2bd
1812-
React-RCTSettings: c7663cfcb3531cd438b8f73e98cd2d982a4bbd72
1813-
React-RCTText: cfee29316f1049f016cbd81328a89a8a07410bba
1814-
React-RCTVibration: 20f5efc1b05cd3f5f7ea03489dd3766c890fb493
1805+
React-RCTAnimation: a49bd2c28c3f32b1d01ff1163603aee3d420ce42
1806+
React-RCTAppDelegate: f7aa2f938a6673cfd2a76e76fea8c4b38a4a5bec
1807+
React-RCTBlob: 8ddf30f97222f4d8227f64428349fd8252292cb5
1808+
React-RCTFabric: 51fb64f7ca7ca2fa334433ba6d4f12750a481cf1
1809+
React-RCTImage: 077a25f3a9a6b79938a01c2cfae05ea5f07fc584
1810+
React-RCTLinking: 0c8415c600942454d663c4c4dc0d3b00aa7ba5e5
1811+
React-RCTNetwork: 42a3c6fb5318dcc9f8796f43de081799fb905021
1812+
React-RCTSettings: 1028522e45192515bd8c5308752d3270ee95fd66
1813+
React-RCTText: 29ef786d78f69ec5b571634ef2ddd6ec177c958a
1814+
React-RCTVibration: 97859ed50816369f4830f623dfac8dc9877f3c5c
18151815
React-rendererconsistency: ccd50d5ee6544b26cd11fff5ad1112c5058a0064
1816-
React-rendererdebug: d8f43065459c2095f27a173121f03dcd1d1b08e5
1816+
React-rendererdebug: 2092a1207a0023ac30877f4f730b403bfaf5ccbe
18171817
React-rncore: bfe554cb773978e8b94898866964c9579cb0c70c
1818-
React-RuntimeApple: 89c319b1610d4ca8895642cf0eae1188bf864270
1819-
React-RuntimeCore: 30399cbd2368f7e031692875275984fa42142601
1818+
React-RuntimeApple: 80949ebe7e6a94296e0168a940832d2029b66982
1819+
React-RuntimeCore: f04b5d1eb0534a4f4f46bc76a938a9360ad91024
18201820
React-runtimeexecutor: 26a9d14619ec1359470df391be9abb7c80a21b2b
1821-
React-RuntimeHermes: c78f07b7a599c1c9a889189c02436600e72c8b27
1822-
React-runtimescheduler: 9f6b0b85154ed8a17a899cd1bab258a26c8db2cd
1821+
React-RuntimeHermes: 91c2a67a99f316f11a08d3d9280ab4c9fae59b56
1822+
React-runtimescheduler: 76bb85f5ba01e800b4970fbc84eeaf10756c50c4
18231823
React-timing: c9c7c0fe2fdfc433ef208889b6191dfb45457d68
1824-
React-utils: e6697b03f21c7ac57b075d848cda7882662cabf7
1825-
ReactCodegen: 484b223748d7489d7036db1cbf79896d297e33a7
1826-
ReactCommon: 832cdd669aeecd430d9ca1975d15676b38d0b263
1827-
RNCAsyncStorage: fe98f1b459a87b80f12207da80c50b3a3abb6081
1824+
React-utils: 1b14c41c3edf4d96db1247a78e0ad96e7ceea011
1825+
ReactCodegen: 0a0eef9c8cd84c932ae1868832086c6441811e84
1826+
ReactCommon: 3c1c8c6d777103c0e60e37c6c5f08e828e2a77c9
1827+
RNCAsyncStorage: 2edc69cf6db9299363a11477668b7f452f2cb4a6
18281828
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
1829-
Yoga: be6f55a028e86c83ae066f018e9b5d24ffc45436
1829+
Yoga: 2a5ae8f7db3c675ff5a781fb5d99c5f7a5d2fc11
18301830

18311831
PODFILE CHECKSUM: 0b23fa334f7dc47bad5ff245a36b4ae07016c9d8
18321832

example/src/App.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Text, View, StyleSheet, Button } from 'react-native';
1+
import { View, StyleSheet, Button } from 'react-native';
22
import { Pam } from 'pam-react-native';
33

44
Pam.initialize({
@@ -12,7 +12,12 @@ Pam.initialize({
1212
export default function App() {
1313
return (
1414
<View style={styles.container}>
15-
<Text>Result:</Text>
15+
<Button
16+
title="Allow Consent"
17+
onPress={async () => {
18+
await Pam.allowAllTrackingConsent('2VNmHzWrxPYJj0zDiM1cQGeW2S5');
19+
}}
20+
/>
1621
<Button
1722
title="CLICK"
1823
onPress={async () => {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@
202202
"version": "0.45.5"
203203
},
204204
"dependencies": {
205+
"@react-native-async-storage/async-storage": "^2.1.0",
205206
"pamtag": "../pamtracker.js"
206207
}
207208
}

src/AppAttentionPlugin.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import PamTracker from 'pamtag';
2+
import { Plugin } from 'pamtag/build/types/core/plugin';
3+
4+
export class AppAttentionPlugin extends Plugin {
5+
override initPlugin(pam: PamTracker): void {
6+
console.log('AppAttentionPlugin initPlugin', pam);
7+
// pam.hook.onStartup(async (config) => {});
8+
}
9+
}

src/NativeStorageProvider.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export class NativeStorageProvider implements IStorageProvider {
3535
}
3636

3737
async getCookie(name: string): Promise<string | null> {
38+
console.log('getCookie', name);
3839
try {
3940
const value = await AsyncStorage.getItem(`ck_${name}`);
4041
const expireTimestampStr = await AsyncStorage.getItem(
@@ -53,7 +54,9 @@ export class NativeStorageProvider implements IStorageProvider {
5354
if (value !== null) {
5455
return value;
5556
}
56-
} catch (error) {}
57+
} catch (error) {
58+
console.log('getCookie error', error);
59+
}
5760
return null;
5861
}
5962

0 commit comments

Comments
 (0)