我正在制作一个多平台应用程序,起初它是在expo中制作的,但是后来我不得不使用expoKit运行它,现在我尝试实现inAppPurchases,但是我却无法做到,我已经完成了文档首先指出的内容使用connectAsync函数,该函数应该给我一个结果,但它只会返回以下内容:
这是我使用它的代码
import React, {useState, useEffect, useContext} from 'react'
import { StyleSheet, Text, View, ScrollView, Image, TouchableOpacity, Platform,Alert } from 'react-native'
import { AntDesign } from '@expo/vector-icons';
import { MaterialCommunityIcons } from '@expo/vector-icons';
import { FontAwesome5 } from '@expo/vector-icons';
import AsyncStorage from '@react-native-community/async-storage';
import Config from '../config'
import * as InAppPurchases from 'expo-in-app-purchases';
import { AuthContext } from '../components/context'
const itemSkus = Platform.select({
ios: [
'1000_monedas',
'2000_monedas'
],
android: [
'1000_monedas',
'2000_monedas'
]
});
export default function MyProfile() {
const [userInfo, setUserInfo] = useState(null);
const { signOut } = useContext(AuthContext);
useEffect(() => {
fetchUserData()
},[])
useEffect(() => {
initializeInAppPurchase()
// fetchProductsData()
},[])
const fetchUserData = async() => {
try {
const userData = await AsyncStorage.getItem('userData')
const dataUser = JSON.parse(userData)
setUserInfo(dataUser)
} catch (error) {
console.log(error)
}
}
const fetchProductsData = async () => {
const { responseCode, results } = await InAppPurchases.getProductsAsync(itemSkus);
if (responseCode === InAppPurchases.IAPResponseCode.OK) {
console.log("result",results)
console.log("responseCode",responseCode)
}
}
const initializeInAppPurchase = async() => {
const history = await InAppPurchases.connectAsync();
console.log("history", history)
if (history.responseCode === InAppPurchases.IAPResponseCode.OK) {
history.results.forEach(result => {
// Restore history if needed
console.log(result)
});
}
}
const onAddCoins = () => {
}
return(
<ScrollView>
<View style={[styles.containerUser]}>
<Image
resizeMode="contain"
style={styles.imageMain}
source={require('../assets/backgrounds/perfil2.jpg')}
/>
<View style={styles.hoverBack}>
<View style={styles.containerImage}>
<Image
resizeMode="cover"
style={styles.profileImage}
source={{uri: Config.urlBackEnd + '//profileImages/' + userInfo?.profile_image}}
/>
</View>
<Text style={styles.textWhite}>{userInfo?.name}</Text>
<Text style={styles.textWhite}>{userInfo?.email}</Text>
<Text style={styles.textWhite}>Tipo de Usuario: {userInfo?.typeOfUser == "teacher" ? "Profesor" : userInfo?.typeOfUser == "user" ? "Usuario Normal" : "Administrador"}</Text>
<View style={[styles.containerWallet, styles.shadow]}>
<View style={styles.TrapezoidStyle}>
<FontAwesome5 style={styles.iconCoin} name="coins" size={20} color="#efb810" />
</View>
<View style={styles.coinText}>
<Text style={styles.textMoney}>1000</Text>
</View>
</View>
</View>
</View>
<View style={styles.containerOptions}>
<View style={styles.eachOption}>
<AntDesign style={styles.icon} name="edit" size={25} color="#526065" />
<Text style={styles.textEach}>Editar mi Perfil</Text>
</View>
<View style={styles.eachOption}>
<MaterialCommunityIcons name="textbox-password" style={styles.icon} size={25} color="#526065" />
<Text style={styles.textEach}>Cambiar la Contraseña</Text>
</View>
<TouchableOpacity onPress={onAddCoins}>
<View style={styles.eachOption}>
<MaterialCommunityIcons name="textbox-password" style={styles.icon} size={25} color="#526065" />
<Text style={styles.textEach}>Añadir Monedas</Text>
</View>
</TouchableOpacity>
<View style={styles.eachOption}>
<AntDesign name="delete" style={styles.icon} size={25} color="#526065" />
<Text style={styles.textEach}>Eliminar Cuenta</Text>
</View>
<TouchableOpacity onPress={signOut}>
<View style={styles.eachOption}>
<AntDesign name="logout" style={styles.icon} size={25} color="#526065" />
<Text style={styles.textEach}>Cerrar Sesion</Text>
</View>
</TouchableOpacity>
</View>
</ScrollView>
)
}