Istruzioni per installare l'APP: Android, iOS
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.60"
|
APP_VERSION="0.5.61"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.60"
|
APP_VERSION="0.5.61"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.60"
|
APP_VERSION="0.5.61"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.60"
|
APP_VERSION="0.5.61"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.60"
|
APP_VERSION="0.5.61"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="14"
|
APP_ID="14"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
10
package.json
10
package.json
@@ -123,15 +123,7 @@
|
|||||||
"crypto": false
|
"crypto": false
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"last 30 Chrome versions",
|
"defaults"
|
||||||
"last 30 Firefox versions",
|
|
||||||
"last 4 Edge versions",
|
|
||||||
"last 30 Safari versions",
|
|
||||||
"last 30 Android versions",
|
|
||||||
"last 30 ChromeAndroid versions",
|
|
||||||
"last 30 FirefoxAndroid versions",
|
|
||||||
"last 18 iOS versions",
|
|
||||||
"last 11 Opera versions"
|
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.14.0",
|
"node": ">= 16.14.0",
|
||||||
|
|||||||
BIN
public/images/install_app_on_android_1.jpg
Normal file
BIN
public/images/install_app_on_android_1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/install_app_on_android_2.jpg
Normal file
BIN
public/images/install_app_on_android_2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
BIN
public/images/install_app_on_ios_1.png
Normal file
BIN
public/images/install_app_on_ios_1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
BIN
public/images/install_app_on_ios_1b.jpg
Normal file
BIN
public/images/install_app_on_ios_1b.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
public/images/install_app_on_ios_2.jpg
Normal file
BIN
public/images/install_app_on_ios_2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
@@ -310,9 +310,11 @@ module.exports = configure((ctx) => ({
|
|||||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||||
display: 'standalone',
|
display: 'standalone',
|
||||||
orientation: 'portrait',
|
orientation: 'portrait',
|
||||||
background_color: '#ffffff',
|
background_color: '#fff',
|
||||||
theme_color: '#027be3',
|
theme_color: '#027be3',
|
||||||
start_url: '/',
|
scope: "/",
|
||||||
|
id: "/?homescreen=1",
|
||||||
|
start_url: "/?homescreen=1",
|
||||||
icons: [
|
icons: [
|
||||||
{
|
{
|
||||||
src: 'images/riso-android-icon-512x512.png',
|
src: 'images/riso-android-icon-512x512.png',
|
||||||
@@ -360,6 +362,10 @@ module.exports = configure((ctx) => ({
|
|||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
related_applications: [{
|
||||||
|
"platform": "webapp",
|
||||||
|
"url": "https://test.riso.app/manifest.json"
|
||||||
|
}]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ export default {
|
|||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const $router = useRouter()
|
const $router = useRouter()
|
||||||
|
const $route = useRoute()
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@@ -82,6 +83,8 @@ export default {
|
|||||||
console.log('app mounted')
|
console.log('app mounted')
|
||||||
darkcookie.value = tools.getCookie('darkmode', false, false, false) === '-1'
|
darkcookie.value = tools.getCookie('darkmode', false, false, false) === '-1'
|
||||||
|
|
||||||
|
globalStore.homescreen = $route.query.homescreen ? $route.query.homescreen : ''
|
||||||
|
|
||||||
scroll()
|
scroll()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,11 @@ export default defineComponent({
|
|||||||
const finishLoading = computed(() => globalStore.finishLoading)
|
const finishLoading = computed(() => globalStore.finishLoading)
|
||||||
|
|
||||||
const deferredPrompt = computed(() => globalStore.deferredPrompt)
|
const deferredPrompt = computed(() => globalStore.deferredPrompt)
|
||||||
|
const homescreen = computed(() => globalStore.homescreen)
|
||||||
|
|
||||||
|
|
||||||
|
const viewiOS = ref(false)
|
||||||
|
const viewAndroid = ref(false)
|
||||||
|
|
||||||
function installApp() {
|
function installApp() {
|
||||||
if (globalStore.deferredPrompt) {
|
if (globalStore.deferredPrompt) {
|
||||||
@@ -56,6 +61,9 @@ export default defineComponent({
|
|||||||
installApp,
|
installApp,
|
||||||
isAppRunning,
|
isAppRunning,
|
||||||
deferredPrompt,
|
deferredPrompt,
|
||||||
|
viewiOS,
|
||||||
|
viewAndroid,
|
||||||
|
homescreen,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
<div v-if="tools.isDebugOn()" class="bg-red text-white">
|
<div v-if="tools.isDebugOn()" class="bg-red text-white">
|
||||||
<span> isAppRunning: {{ isAppRunning }} - </span>
|
<span> isAppRunning: {{ isAppRunning }} - </span>
|
||||||
<span> deferredPrompt: {{ deferredPrompt }} - </span>
|
<span> deferredPrompt: {{ deferredPrompt }} - </span>
|
||||||
<span> finishLoading: {{finishLoading}} - </span>
|
<span> homescreen: {{ homescreen }} </span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="finishLoading && !isAppRunning && deferredPrompt" class="row justify-center">
|
<div v-if="finishLoading" class="row justify-center">
|
||||||
|
<div v-if="!isAppRunning" class="q-ma-sm">
|
||||||
|
<!-- App not running -->
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
|
v-if="deferredPrompt"
|
||||||
glossy
|
glossy
|
||||||
size="xl"
|
size="xl"
|
||||||
label="Installa App"
|
label="Installa App"
|
||||||
@@ -14,7 +17,80 @@
|
|||||||
icon="fas fa-mobile-alt"
|
icon="fas fa-mobile-alt"
|
||||||
color="green"
|
color="green"
|
||||||
text-color="white"
|
text-color="white"
|
||||||
/>
|
></q-btn>
|
||||||
|
<div v-else>
|
||||||
|
<div v-if="$q.platform.is.ios && $q.platform.is.safari">
|
||||||
|
<q-btn
|
||||||
|
glossy
|
||||||
|
size="xl"
|
||||||
|
label="Installa App su iOS"
|
||||||
|
@click="viewiOS = !viewiOS"
|
||||||
|
icon="fab fa-apple"
|
||||||
|
color="green"
|
||||||
|
text-color="white"
|
||||||
|
></q-btn>
|
||||||
|
|
||||||
|
<q-slide-transition>
|
||||||
|
<!-- Mostra spiegazione per iOS -->
|
||||||
|
<div v-if="viewiOS">
|
||||||
|
<q-img
|
||||||
|
src="images/install_app_on_ios_1.png"
|
||||||
|
fit="contain"
|
||||||
|
style="min-width: 350px"
|
||||||
|
class="q-my-sm"
|
||||||
|
></q-img
|
||||||
|
><br />
|
||||||
|
|
||||||
|
<q-img
|
||||||
|
src="images/install_app_on_ios_1b.jpg"
|
||||||
|
class="q-mb-md"
|
||||||
|
></q-img
|
||||||
|
><br />
|
||||||
|
|
||||||
|
<q-img
|
||||||
|
src="images/install_app_on_ios_2.jpg"
|
||||||
|
fit="contain"
|
||||||
|
></q-img>
|
||||||
|
</div>
|
||||||
|
</q-slide-transition>
|
||||||
|
</div>
|
||||||
|
<div v-if="$q.platform.is.android">
|
||||||
|
<q-btn
|
||||||
|
glossy
|
||||||
|
size="lg"
|
||||||
|
label="Installa App su Android"
|
||||||
|
@click="viewAndroid = !viewAndroid"
|
||||||
|
icon="fab fa-android"
|
||||||
|
color="green"
|
||||||
|
text-color="white"
|
||||||
|
></q-btn>
|
||||||
|
|
||||||
|
<q-slide-transition>
|
||||||
|
<!-- Mostra spiegazione per Android -->
|
||||||
|
<div v-if="viewAndroid">
|
||||||
|
<div class="q-ma-sm text-h6"> 1) Cliccare sui 3 puntini verticali<br>
|
||||||
|
2) Cliccare su 'Installa App' o 'Schermata Home'
|
||||||
|
</div>
|
||||||
|
<q-img
|
||||||
|
src="images/install_app_on_android_1.jpg"
|
||||||
|
fit="contain"
|
||||||
|
style="min-width: 350px"
|
||||||
|
class="q-my-sm"
|
||||||
|
></q-img
|
||||||
|
><br />
|
||||||
|
<q-img
|
||||||
|
src="images/install_app_on_android_2.jpg"
|
||||||
|
fit="contain"
|
||||||
|
style="min-width: 350px"
|
||||||
|
class="q-my-sm"
|
||||||
|
></q-img
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
</q-slide-transition>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--<div class="row justify-center">
|
<!--<div class="row justify-center">
|
||||||
<CBigBtn
|
<CBigBtn
|
||||||
|
|||||||
@@ -76,8 +76,14 @@ export default defineComponent({
|
|||||||
// if (tools.isDebug()) return 'bg-info'
|
// if (tools.isDebug()) return 'bg-info'
|
||||||
if (globalStore.site && globalStore.site.confpages?.col_toolbar)
|
if (globalStore.site && globalStore.site.confpages?.col_toolbar)
|
||||||
return 'bg-' + globalStore.site.confpages?.col_toolbar
|
return 'bg-' + globalStore.site.confpages?.col_toolbar
|
||||||
else
|
else {
|
||||||
|
if (globalStore.homescreen) {
|
||||||
|
return 'bg-blue'
|
||||||
|
} else {
|
||||||
return 'bg-light-blue'
|
return 'bg-light-blue'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const getColorText = computed(() => {
|
const getColorText = computed(() => {
|
||||||
|
|||||||
@@ -459,8 +459,9 @@ export interface IGlobalState {
|
|||||||
editOn?: boolean,
|
editOn?: boolean,
|
||||||
myselector: ISelector,
|
myselector: ISelector,
|
||||||
addNewRecord: string,
|
addNewRecord: string,
|
||||||
isAppRunning: boolean
|
isAppRunning: boolean,
|
||||||
deferredPrompt: any
|
deferredPrompt: any,
|
||||||
|
homescreen: any,
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IMenuList {
|
export interface IMenuList {
|
||||||
|
|||||||
@@ -618,7 +618,7 @@ const msg_it = {
|
|||||||
code_resetpwd_error: 'Il codice inserito non è corretto.',
|
code_resetpwd_error: 'Il codice inserito non è corretto.',
|
||||||
duplicate_email: 'l\'Email è già stata registrata',
|
duplicate_email: 'l\'Email è già stata registrata',
|
||||||
invalid_email: 'l\'Email non è valida',
|
invalid_email: 'l\'Email non è valida',
|
||||||
invalid_email_micro: 'Questa tipo di email non è funzionante sui nostri server. Si consiglia di usare Gmail o altra casella.',
|
invalid_email_micro: 'Questa tipo di email non è funzionante sui nostri server. Si consiglia di usare Gmail o un\'altra email.',
|
||||||
user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.',
|
user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.',
|
||||||
user_extralist_not_found: 'Utente in archivio non trovato, inserire il Nome, Cognome e numero di cellulare comunicato nella lista nel 2019. Se questa è una nuova registrazione, dovete registrarvi tramite il LINK di chi vi sta invitando.',
|
user_extralist_not_found: 'Utente in archivio non trovato, inserire il Nome, Cognome e numero di cellulare comunicato nella lista nel 2019. Se questa è una nuova registrazione, dovete registrarvi tramite il LINK di chi vi sta invitando.',
|
||||||
user_aportador_not_valid: 'Il link di registrazione non sembra risultare valido.',
|
user_aportador_not_valid: 'Il link di registrazione non sembra risultare valido.',
|
||||||
|
|||||||
@@ -7554,8 +7554,8 @@ export const tools = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
checkApp() {
|
checkApp() {
|
||||||
console.log('checkApp')
|
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
|
console.log('checkApp (homescreen=', globalStore.homescreen)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let displayMode = 'browser'
|
let displayMode = 'browser'
|
||||||
@@ -7569,7 +7569,7 @@ export const tools = {
|
|||||||
// prova altro 2
|
// prova altro 2
|
||||||
console.log('displayMode = ', displayMode)
|
console.log('displayMode = ', displayMode)
|
||||||
|
|
||||||
globalStore.isAppRunning = displayMode === 'standalone'
|
globalStore.isAppRunning = displayMode === 'standalone' || globalStore.homescreen
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('error navigator.standalone ?!')
|
console.log('error navigator.standalone ?!')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
addNewRecord: '',
|
addNewRecord: '',
|
||||||
isAppRunning: false,
|
isAppRunning: false,
|
||||||
deferredPrompt: null,
|
deferredPrompt: null,
|
||||||
|
homescreen: '',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
getters: {
|
getters: {
|
||||||
|
|||||||
Reference in New Issue
Block a user