{"id":123880,"date":"2024-02-26T08:55:56","date_gmt":"2024-02-26T08:55:56","guid":{"rendered":"https:\/\/wp-prod-new.adapty.io\/sdk\/react-native\/"},"modified":"2025-05-07T10:16:33","modified_gmt":"2025-05-07T10:16:33","slug":"react-native","status":"publish","type":"sdk","link":"https:\/\/wp-prod-new.adapty.io\/ru\/sdk\/react-native\/","title":{"rendered":"React Native"},"content":{"rendered":"\nmakePurchase<\/strong><\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\ntry<\/span> {<\/span><\/span>\r\n const<\/span> purchaseResult<\/span> =<\/span> await<\/span> adapty<\/span>.<\/span>makePurchase<\/span>(<\/span>product<\/span>)<\/span>;<\/span><\/span>\r\n switch<\/span> (<\/span>purchaseResult<\/span>.<\/span>type<\/span>) <\/span>{<\/span><\/span>\r\n case<\/span> '<\/span>success<\/span>'<\/span>:<\/span><\/span>\r\n const<\/span> isSubscribed<\/span> =<\/span> purchaseResult<\/span>.<\/span>profile<\/span>?.<\/span>accessLevels<\/span>[<\/span>'<\/span>YOUR_ACCESS_LEVEL<\/span>'<\/span>]<\/span>?.<\/span>isActive<\/span>;<\/span><\/span>\r\n if<\/span> (<\/span>isSubscribed<\/span>) <\/span>{<\/span><\/span>\r\n \/\/ Grant access to the paid features<\/span><\/span>\r\n }<\/span><\/span>\r\n break<\/span>;<\/span><\/span>\r\n case<\/span> '<\/span>user_cancelled<\/span>'<\/span>:<\/span><\/span>\r\n \/\/ Handle the case where the user canceled the purchase<\/span><\/span>\r\n break<\/span>;<\/span><\/span>\r\n case<\/span> '<\/span>pending<\/span>'<\/span>:<\/span><\/span>\r\n \/\/ Handle deferred purchases (e.g., the user will pay offline with cash)<\/span><\/span>\r\n break<\/span>;<\/span><\/span>\r\n }<\/span><\/span>\r\n}<\/span> catch<\/span> (error) <\/span>{<\/span><\/span>\r\n \/\/ Handle the error<\/span><\/span>\r\n}<\/span><\/span><\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
restorePurchase<\/strong><\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\ntry<\/span> {<\/span><\/span>\r\n\tconst<\/span> profile<\/span> =<\/span> await<\/span> adapty<\/span>.<\/span>restorePurchases<\/span>()<\/span>;<\/span><\/span>\r\n const<\/span> isSubscribed<\/span> =<\/span> profile<\/span>.<\/span>accessLevels<\/span>[<\/span>'<\/span>YOUR_ACCESS_LEVEL<\/span>'<\/span>]<\/span>?.<\/span>isActive<\/span>;<\/span><\/span>\r\n \r\n\tif<\/span> (<\/span>isSubscribed<\/span>) <\/span>{<\/span><\/span>\r\n\t\t\/\/ restore access<\/span><\/span>\r\n\t}<\/span><\/span>\r\n}<\/span> catch<\/span> (error) <\/span>{<\/span><\/span>\r\n\t\/\/ handle the error<\/span><\/span>\r\n}<\/span><\/span>\r\n\r\n\r\n\r\n<\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
identify<\/strong><\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\ntry<\/span> {<\/span><\/span>\r\n await<\/span> adapty<\/span>.<\/span>identify<\/span>(<\/span>\"<\/span>YOUR_USER_ID<\/span>\"<\/span>)<\/span>;<\/span><\/span>\r\n \/\/ successfully identified<\/span><\/span>\r\n}<\/span> catch<\/span> (error) <\/span>{<\/span><\/span>\r\n \/\/ handle the error<\/span><\/span>\r\n}<\/span><\/span>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
updateProfile<\/strong><\/summary>\n
\/\/ Your app's code<\/span><\/span>\r\ntry<\/span> {<\/span><\/span>\r\n await<\/span> adapty<\/span>.<\/span>updateProfile<\/span>(<\/span>params<\/span>)<\/span>;<\/span><\/span>\r\n}<\/span> catch<\/span> (error) <\/span>{<\/span><\/span>\r\n \/\/ handle `AdaptyError`<\/span><\/span>\r\n}<\/span><\/span>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<\/code><\/pre>\r\n<\/div>\n<\/details>\n\n
updateAttribution<\/strong><\/summary>\n
import<\/span> {<\/span> adapty<\/span>,<\/span> AttributionSource<\/span> }<\/span> from<\/span> '<\/span>react-native-adapty<\/span>'<\/span>;<\/span><\/span>\r\nimport<\/span> appsFlyer <\/span>from<\/span> '<\/span>react-native-appsflyer<\/span>'<\/span>;<\/span><\/span>\r\n\r\nappsFlyer<\/span>.<\/span>onInstallConversionData<\/span>(<\/span>installData<\/span> =><\/span> {<\/span><\/span>\r\n try<\/span> {<\/span><\/span>\r\n