Add initial iOS project files for iso-test-app
- Created Info.plist with essential app configuration including bundle identifiers, versioning, and URL schemes. - Added PrivacyInfo.xcprivacy to specify accessed API types and privacy tracking settings. - Implemented SplashScreen.storyboard for the app's launch screen with a logo and background color. - Established Expo.plist for update configurations, setting updates to check on launch. - Created a bridging header for Swift compatibility. - Added an empty entitlements file for future use.
This commit is contained in:
39
app/+not-found.tsx
Normal file
39
app/+not-found.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
import { Link, Stack } from 'expo-router';
|
||||
import React from 'react';
|
||||
import { StyleSheet, Text, View } from 'react-native';
|
||||
|
||||
export default function NotFoundScreen() {
|
||||
return (
|
||||
<>
|
||||
<Stack.Screen options={{ title: 'Oops!' }} />
|
||||
<View style={styles.container}>
|
||||
<Text style={styles.title}>This screen does not exist.</Text>
|
||||
<Link href="/" style={styles.link}>
|
||||
<Text style={styles.linkText}>Go to home screen!</Text>
|
||||
</Link>
|
||||
</View>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
padding: 20,
|
||||
},
|
||||
title: {
|
||||
fontSize: 20,
|
||||
fontWeight: 'bold',
|
||||
marginBottom: 10,
|
||||
},
|
||||
link: {
|
||||
marginTop: 15,
|
||||
paddingVertical: 15,
|
||||
},
|
||||
linkText: {
|
||||
color: '#007AFF',
|
||||
textDecorationLine: 'underline',
|
||||
},
|
||||
});
|
@@ -1,7 +1,38 @@
|
||||
import React from "react";
|
||||
import { Text, View } from "react-native";
|
||||
import * as Notifications from 'expo-notifications';
|
||||
import React, { useEffect } from "react";
|
||||
import { Button, Platform, Text, View } from "react-native";
|
||||
|
||||
async function registerForPushNotificationsAsync() {
|
||||
const { status: existingStatus } = await Notifications.getPermissionsAsync();
|
||||
let finalStatus = existingStatus;
|
||||
if (existingStatus !== 'granted') {
|
||||
const { status } = await Notifications.requestPermissionsAsync();
|
||||
finalStatus = status;
|
||||
}
|
||||
if (finalStatus !== 'granted') {
|
||||
alert('Permission for notifications not granted!');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
async function sendNotification() {
|
||||
await Notifications.scheduleNotificationAsync({
|
||||
content: {
|
||||
title: "Hello!",
|
||||
body: "Ez egy értesítés példája.",
|
||||
},
|
||||
trigger: Platform.OS === 'android'
|
||||
? ({ seconds: 1, repeats: false } as any)
|
||||
: null,
|
||||
});
|
||||
}
|
||||
|
||||
export default function Index() {
|
||||
useEffect(() => {
|
||||
registerForPushNotificationsAsync();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<View
|
||||
style={{
|
||||
@@ -11,6 +42,7 @@ export default function Index() {
|
||||
}}
|
||||
>
|
||||
<Text>Edit app/index.tsx to edit this screen.</Text>
|
||||
<Button title="Küldj értesítést" onPress={sendNotification} />
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user