1405/03/31-apk link
This commit is contained in:
@@ -1,10 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"relation": ["delegate_permission/common.handle_all_urls"],
|
|
||||||
"target": {
|
|
||||||
"namespace": "android_app",
|
|
||||||
"package_name": "ir.samingold.app",
|
|
||||||
"sha256_cert_fingerprints": ["60:54:C6:C1:22:6C:2E:EA:A1:05:02:B1:17:F5:7D:49:1A:C0:84:FF:4C:ED:FD:42:D9:7F:DF:B2:70:37:8E:03"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
+14
-1
@@ -83,11 +83,24 @@ function applyTenantThemeVars() {
|
|||||||
document.documentElement.style.setProperty('--App-background-color', backgroundColor)
|
document.documentElement.style.setProperty('--App-background-color', backgroundColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function detectTWA() {
|
||||||
|
const fromReferrer = document.referrer.startsWith('android-app://');
|
||||||
|
const fromParam = new URLSearchParams(window.location.search).get('source') === 'twa';
|
||||||
|
|
||||||
|
if (fromReferrer || fromParam) {
|
||||||
|
sessionStorage.setItem('appMode', 'twa');
|
||||||
|
// پاک کردن پارامتر از URL
|
||||||
|
if (fromParam) {
|
||||||
|
const url = new URL(window.location.href);
|
||||||
|
url.searchParams.delete('source');
|
||||||
|
window.history.replaceState({}, '', url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
export async function bootstrapApp() {
|
export async function bootstrapApp() {
|
||||||
try {
|
try {
|
||||||
|
detectTWA()
|
||||||
const config = await withTimeout(loadAppConfig(), 20000, 'Config loading timeout')
|
const config = await withTimeout(loadAppConfig(), 20000, 'Config loading timeout')
|
||||||
|
|
||||||
setAppConfig(config)
|
setAppConfig(config)
|
||||||
applyTenantThemeVars()
|
applyTenantThemeVars()
|
||||||
startPwaManifest(config)
|
startPwaManifest(config)
|
||||||
|
|||||||
+8
-1
@@ -224,7 +224,14 @@ export function applyProjectFont() {
|
|||||||
document.documentElement.classList.add('font-dana')
|
document.documentElement.classList.add('font-dana')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
export function isTWA() {
|
||||||
|
if (sessionStorage.getItem('appMode') === 'twa') return true;
|
||||||
|
if (document.referrer.startsWith('android-app://')) {
|
||||||
|
sessionStorage.setItem('appMode', 'twa');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
export function applyProjectTheme() {
|
export function applyProjectTheme() {
|
||||||
applyProjectFont()
|
applyProjectFont()
|
||||||
|
|
||||||
|
|||||||
@@ -186,7 +186,7 @@
|
|||||||
</BasicButton>
|
</BasicButton>
|
||||||
|
|
||||||
<template v-if="config.config?.name === 'garoosi'">
|
<template v-if="config.config?.name === 'garoosi'">
|
||||||
<div class="dauth-actions-row">
|
<div v-if="!isTWA()" class="dauth-actions-row">
|
||||||
<a
|
<a
|
||||||
class="dauth-link-btn dauth-link-btn--primary"
|
class="dauth-link-btn dauth-link-btn--primary"
|
||||||
download="Garoosi.apk"
|
download="Garoosi.apk"
|
||||||
@@ -194,7 +194,7 @@
|
|||||||
>
|
>
|
||||||
دانلود اپ اندروید
|
دانلود اپ اندروید
|
||||||
</a>
|
</a>
|
||||||
<button type="button" class="dauth-link-btn" @click="installWebApp">
|
<button type="button" class="dauth-link-btn" @click="installWebApp">
|
||||||
نصب نسخه وب اپ
|
نصب نسخه وب اپ
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -205,6 +205,15 @@
|
|||||||
درباره ما
|
درباره ما
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
<div v-else-if="!isTWA() && !!setting.getSettingByKey('apk_download_link')" class="mt-1">
|
||||||
|
<a
|
||||||
|
class="dauth-link-btn dauth-link-btn--primary !hover:text-primary "
|
||||||
|
:href="setting.getSettingByKey('apk_download_link')"
|
||||||
|
>
|
||||||
|
دانلود اپ اندروید
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -239,8 +248,9 @@
|
|||||||
ورود با اثر انگشت
|
ورود با اثر انگشت
|
||||||
</div>
|
</div>
|
||||||
</BasicButton>
|
</BasicButton>
|
||||||
|
|
||||||
<template v-if="config.config?.name === 'garoosi'">
|
<template v-if="config.config?.name === 'garoosi'">
|
||||||
<div class="flex w-full gap-2 mb-2 mt-2">
|
<div v-if="!isTWA()" class="flex w-full gap-2 mb-2 mt-2">
|
||||||
<a
|
<a
|
||||||
class="flex w-full items-center justify-center rounded py-2 text-white bg-primary border-none cursor-pointer no-underline"
|
class="flex w-full items-center justify-center rounded py-2 text-white bg-primary border-none cursor-pointer no-underline"
|
||||||
download="Garoosi.apk"
|
download="Garoosi.apk"
|
||||||
@@ -261,10 +271,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</BasicButton>
|
</BasicButton>
|
||||||
</template>
|
</template>
|
||||||
|
<div v-else-if="!isTWA() && !!setting.getSettingByKey('apk_download_link')" class=" mt-1">
|
||||||
|
<a
|
||||||
|
class="dauth-link-btn dauth-link-btn--primary !hover:text-primary "
|
||||||
|
:href="setting.getSettingByKey('apk_download_link')"
|
||||||
|
>
|
||||||
|
دانلود اپ اندروید
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="isRegister"
|
v-if="isRegister"
|
||||||
class="cursor-pointer flex gap-1 justify-center mt-5 text-xs"
|
class="cursor-pointer flex gap-1 justify-center mt-5 text-xs "
|
||||||
@click="$emit('register', true)"
|
@click="$emit('register', true)"
|
||||||
>
|
>
|
||||||
اگر حساب کاربری ندارید
|
اگر حساب کاربری ندارید
|
||||||
@@ -360,7 +377,13 @@ import { useWalletStore } from '@/store/walletStore'
|
|||||||
import { useSettingsStore } from '@/store/settingsStore'
|
import { useSettingsStore } from '@/store/settingsStore'
|
||||||
import { setTruth } from '@/app/authBoot'
|
import { setTruth } from '@/app/authBoot'
|
||||||
import {useConfigStore} from "@/store/configStore";
|
import {useConfigStore} from "@/store/configStore";
|
||||||
import {getConfigApp, getProjectLoginLogo, getProjectLoginTaglineLines, hasCustomLoginLogoLayout} from "@/utils/config";
|
import {
|
||||||
|
getConfigApp,
|
||||||
|
getProjectLoginLogo,
|
||||||
|
getProjectLoginTaglineLines,
|
||||||
|
hasCustomLoginLogoLayout,
|
||||||
|
isTWA
|
||||||
|
} from "@/utils/config";
|
||||||
import BasicActionSheet from "@/components/BasicPacks/BasicActionSheet.vue";
|
import BasicActionSheet from "@/components/BasicPacks/BasicActionSheet.vue";
|
||||||
import {getConfig} from "@/api/config";
|
import {getConfig} from "@/api/config";
|
||||||
import shareAppleIcon from '@/assets/img/share-apple.png'
|
import shareAppleIcon from '@/assets/img/share-apple.png'
|
||||||
@@ -390,6 +413,7 @@ const stepTwoVerify = ref<boolean>(false)
|
|||||||
const formRef = ref<FormInstance>()
|
const formRef = ref<FormInstance>()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const walletStore = useWalletStore()
|
const walletStore = useWalletStore()
|
||||||
|
const setting=useSettingsStore()
|
||||||
const data = reactive(['ورود با پیامک', 'ورود با کلمه عبور'])
|
const data = reactive(['ورود با پیامک', 'ورود با کلمه عبور'])
|
||||||
const value = ref(data[0])
|
const value = ref(data[0])
|
||||||
const refOtpInput = ref<InstanceType<typeof OtpInput> | null>(null)
|
const refOtpInput = ref<InstanceType<typeof OtpInput> | null>(null)
|
||||||
|
|||||||
@@ -8,11 +8,14 @@ import { useConfigStore } from '@/store/configStore'
|
|||||||
import { useLoginPageContext } from '../../composables/useLoginPage'
|
import { useLoginPageContext } from '../../composables/useLoginPage'
|
||||||
import DesktopPwaGuideModal from './DesktopPwaGuideModal.vue'
|
import DesktopPwaGuideModal from './DesktopPwaGuideModal.vue'
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
|
import {isTWA} from "@/utils/config";
|
||||||
|
import {useUserStore} from "@/store/userStore";
|
||||||
|
import {useSettingsStore} from "@/store/settingsStore";
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
register: [val: boolean]
|
register: [val: boolean]
|
||||||
}>()
|
}>()
|
||||||
|
const setting=useSettingsStore()
|
||||||
const config = useConfigStore()
|
const config = useConfigStore()
|
||||||
const {
|
const {
|
||||||
time,
|
time,
|
||||||
@@ -170,7 +173,7 @@ function goToAboutUs() {
|
|||||||
</BasicButton>
|
</BasicButton>
|
||||||
|
|
||||||
<template v-if="config.config?.name === 'garoosi'">
|
<template v-if="config.config?.name === 'garoosi'">
|
||||||
<div class="dauth-actions-row">
|
<div v-if="!isTWA()" class="dauth-actions-row">
|
||||||
<a
|
<a
|
||||||
class="dauth-link-btn dauth-link-btn--primary"
|
class="dauth-link-btn dauth-link-btn--primary"
|
||||||
download="Garoosi.apk"
|
download="Garoosi.apk"
|
||||||
@@ -189,6 +192,15 @@ function goToAboutUs() {
|
|||||||
درباره ما
|
درباره ما
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
<div v-else-if="!isTWA() && !!setting.getSettingByKey('apk_download_link')" class="dauth-actions-row ">
|
||||||
|
<a
|
||||||
|
class="dauth-link-btn dauth-link-btn--primary !hover:text-primary "
|
||||||
|
:href="setting.getSettingByKey('apk_download_link')"
|
||||||
|
>
|
||||||
|
دانلود اپ اندروید
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="isRegister" class="dauth-switch">
|
<div v-if="isRegister" class="dauth-switch">
|
||||||
|
|||||||
@@ -1081,10 +1081,10 @@
|
|||||||
resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
|
resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
|
||||||
integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
|
integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
|
||||||
|
|
||||||
"@esbuild/linux-x64@0.18.20":
|
"@esbuild/win32-x64@0.18.20":
|
||||||
version "0.18.20"
|
version "0.18.20"
|
||||||
resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz"
|
resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz"
|
||||||
integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
|
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
|
||||||
|
|
||||||
"@esbuild/netbsd-x64@0.18.20":
|
"@esbuild/netbsd-x64@0.18.20":
|
||||||
version "0.18.20"
|
version "0.18.20"
|
||||||
|
|||||||
Reference in New Issue
Block a user