Спустя два месяца после проекта на Expo понял что ничего толкового на нем не выйдет.
Пришлось переписать весь проект на чистый RN. (та еще боль)
expo eject
?Устанавливаю Ipa файл через Itunes 12.6.3
expo build:ios
, предварительно корректно настроив app.jsonbuild:android
запускается publish
, которая применяется к обеим платформамexpo build:ios --release-channel prod-100
expo build:ios --release-channel prod-101
expo publish --release-channel prod-101
const styles = StyleSheet.create({
inputContainerStyle: {
margin: 8,
marginTop: 75,
position: 'relative'
},
icon: {
position: 'absolute',
top: 5,
right: 0,
zIndex: 1
}
});
// пакетная
[{
"to": "ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]",
"sound": "default",
"body": "Hello world!"
}, {
"to": "ExponentPushToken[yyyyyyyyyyyyyyyyyyyyyy]",
"badge": 1,
"body": "You've got mail"
}]
// обычная
{
"to": "ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]",
"title":"hello",
"body": "world"
}
StackNavigation
в BottomTabNavigation
и там уже прописать переходы.const AppNavigator = createBottomTabNavigator({
RootScreenA: {
screen: createStackNavigator({
ChildScreenA: {
screen: ChildScreenA,
},
ChildScreenB: {
screen: ChildScreenA,
},
}),
},
RootScreenB: {
screen: createStackNavigator({
ChildScreenA: {
screen: ChildScreenA,
},
ChildScreenC: {
screen: ChildScreenC,
},
}),
},
RootScreenC: {
screen: createStackNavigator({
ChildScreenD: {
screen: ChildScreenD,
},
ChildScreenE: {
screen: ChildScreenE,
},
}),
},
});
const App = createAppContainer(AppNavigator);
Object.keys(this.state.users)
– https://snack.expo.io/B1bErzcwE access_token
,refresh_token
и expires_in
в SecureStoreexpires_in
- если истек, делать запрос на обновление токена, обновив данные в SecureStore
, если не истек – сделать запрос с текущим токеномlet redirectUrl = AuthSession.getRedirectUrl();
let result = await AuthSession.startAsync({
authUrl: 'https://oauth.vk.com/authorize?client_id=<client_id>&display=mobile&redirect_uri=' +
encodeURIComponent(redirectUrl) + '&response_type=token&v=5.92',
});
if (result.type === 'success') {
// обрабатываете полученный токен, получаете информацию о пользователе, etc
}