UNPKG

@mikekhristo/expo-tiktok-opensdk

Version:

Expo module for TikTok OpenSDK (Fork of tiktok-opensdk-react-native)

69 lines (58 loc) 2.54 kB
import { ConfigPlugin, createRunOncePlugin, withPlugins, withInfoPlist, withAndroidManifest, AndroidConfig } from '@expo/config-plugins'; const { addMetaDataItemToMainApplication, getMainApplicationOrThrow } = AndroidConfig.Manifest; const pkg = require('../../package.json'); interface TikTokOpenSDKPluginProps { iosClientKey: string; androidClientKey: string; iosUniversalLink?: string; scheme?: string; redirectScheme?: string; } const withTikTokOpenSDKAndroid: ConfigPlugin<TikTokOpenSDKPluginProps> = (config, props) => { return withAndroidManifest(config, (config) => { const mainApplication = getMainApplicationOrThrow(config.modResults); // Add TikTok SDK activities addMetaDataItemToMainApplication(mainApplication, 'com.bytedance.sdk.appKey', props.androidClientKey); return config; }); }; const withTikTokOpenSDKIOS: ConfigPlugin<TikTokOpenSDKPluginProps> = (config, props) => { return withPlugins(config, [ [ withInfoPlist, (config) => { config.modResults.LSApplicationQueriesSchemes = config.modResults.LSApplicationQueriesSchemes || []; if (!config.modResults.LSApplicationQueriesSchemes.includes('tiktokopensdk')) { config.modResults.LSApplicationQueriesSchemes.push('tiktokopensdk'); } if (!config.modResults.LSApplicationQueriesSchemes.includes('tiktoksharesdk')) { config.modResults.LSApplicationQueriesSchemes.push('tiktoksharesdk'); } if (!config.modResults.LSApplicationQueriesSchemes.includes('snssdk1180')) { config.modResults.LSApplicationQueriesSchemes.push('snssdk1180'); } if (!config.modResults.LSApplicationQueriesSchemes.includes('musically')) { config.modResults.LSApplicationQueriesSchemes.push('musically'); } config.modResults.TikTokClientKey = props.iosClientKey; if (props.iosUniversalLink) { config.modResults.TikTokUniversalLink = props.iosUniversalLink; } if (props.scheme) { config.modResults.TikTokRedirectScheme = props.scheme; } if (props.redirectScheme) { config.modResults.TikTokRedirectScheme = props.redirectScheme; } return config; }, ], ]); }; const withTikTokOpenSDK: ConfigPlugin<TikTokOpenSDKPluginProps> = (config, props) => { return withPlugins(config, [ [withTikTokOpenSDKAndroid, props], [withTikTokOpenSDKIOS, props], ]); }; export = createRunOncePlugin(withTikTokOpenSDK, pkg.name, pkg.version);