改为固定接口获取ios下载
This commit is contained in:
+31
-35
@@ -3,8 +3,8 @@
|
|||||||
*
|
*
|
||||||
* - 进页面:bottonlist 拿按钮开关(iosDown / iosStore / iosTF / iosH5 / androidButton),不含下载地址
|
* - 进页面:bottonlist 拿按钮开关(iosDown / iosStore / iosTF / iosH5 / androidButton),不含下载地址
|
||||||
* - 点下载:bottonclick 返回 data.link(地址数组),跳 link[index];同一请求后端记点击
|
* - 点下载:bottonclick 返回 data.link(地址数组),跳 link[index];同一请求后端记点击
|
||||||
* - iOS:商店包 iosStore(packageType 2) / 企业签 iosDown(1) / TF iosTF(3) 走 bottonclick 拿 link;
|
* - iOS 轻量版:点击直接调 h5/config 下载描述文件(不看开关);社媒内置浏览器装不了描述文件,只弹「复制到 Safari」引导
|
||||||
* iosH5 走 h5/config 下载描述文件;社媒内置浏览器装不了描述文件,只弹「复制到 Safari」引导
|
* - iOS 商店版:iosStore(packageType 2) 走 bottonclick 拿 link
|
||||||
* - 下载前把 { ...query, tid } 写入剪贴板供 App 首启归因
|
* - 下载前把 { ...query, tid } 写入剪贴板供 App 首启归因
|
||||||
*
|
*
|
||||||
* 组件接入:
|
* 组件接入:
|
||||||
@@ -121,38 +121,24 @@ export function useAppDownload() {
|
|||||||
setTimeout(() => URL.revokeObjectURL(objectUrl), 10000)
|
setTimeout(() => URL.revokeObjectURL(objectUrl), 10000)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function downloadIos(param: donwloadParam, useStore: boolean) {
|
// iOS 轻量版:不看 bottonlist 开关,直接调 h5/config 下载描述文件
|
||||||
const flags = buttonList.value
|
async function downloadIosLite() {
|
||||||
if (useStore) {
|
guide.value = 'ios'
|
||||||
if (!flags.iosStore) return false
|
// 社媒内置浏览器无法装描述文件,只展示引导,由页面「复制到 Safari」处理
|
||||||
param.type = 'iosStore'
|
if (isSocialInAppBrowser()) return true
|
||||||
param.packageType = 2
|
await downloadMobileConfig()
|
||||||
const links = await fetchLinks(param)
|
return true
|
||||||
if (!links.length) return false
|
}
|
||||||
jumpToLink(links[0])
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flags.iosDown || flags.iosTF) {
|
// iOS 商店版:后台开了 iosStore 才有入口,走 bottonclick 拿 link
|
||||||
param.type = flags.iosDown ? 'iosDown' : 'iosTF'
|
async function downloadIosStore(param: donwloadParam) {
|
||||||
param.packageType = flags.iosDown ? 1 : 3
|
if (!buttonList.value.iosStore) return false
|
||||||
guide.value = 'ios'
|
param.type = 'iosStore'
|
||||||
const links = await fetchLinks(param)
|
param.packageType = 2
|
||||||
if (!links.length) return false
|
const links = await fetchLinks(param)
|
||||||
jumpToLink(links[0])
|
if (!links.length) return false
|
||||||
return true
|
jumpToLink(links[0])
|
||||||
}
|
return true
|
||||||
|
|
||||||
if (flags.iosH5) {
|
|
||||||
guide.value = 'ios'
|
|
||||||
// 社媒内置浏览器无法装描述文件,只展示引导,由页面「复制到 Safari」处理
|
|
||||||
if (!isSocialInAppBrowser()) await downloadMobileConfig()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
// 没开轻量版时退到商店包
|
|
||||||
if (flags.iosStore) return downloadIos(param, true)
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function downloadAndroid(param: donwloadParam, index: number) {
|
async function downloadAndroid(param: donwloadParam, index: number) {
|
||||||
@@ -171,10 +157,20 @@ export function useAppDownload() {
|
|||||||
* @param terminal 默认按 UA;PC 端弹窗里的 iOS / Android 按钮显式传入
|
* @param terminal 默认按 UA;PC 端弹窗里的 iOS / Android 按钮显式传入
|
||||||
*/
|
*/
|
||||||
async function download(index = 0, terminal: Terminal = isIos ? 'ios' : 'android') {
|
async function download(index = 0, terminal: Terminal = isIos ? 'ios' : 'android') {
|
||||||
await init()
|
|
||||||
const trace_id = renewSessionTraceId()
|
const trace_id = renewSessionTraceId()
|
||||||
// 写剪贴板供 App 首次启动读取做安装归因:整包 URL 参数 + tid(黄果 App 按 tid 读)
|
// 写剪贴板供 App 首次启动读取做安装归因:整包 URL 参数 + tid(黄果 App 按 tid 读)
|
||||||
copyToClipboard(JSON.stringify({ ...route.query, tid: trace_id }))
|
copyToClipboard(JSON.stringify({ ...route.query, tid: trace_id }))
|
||||||
|
|
||||||
|
if (terminal === 'ios' && index !== 1) {
|
||||||
|
try {
|
||||||
|
return await downloadIosLite()
|
||||||
|
} catch (err) {
|
||||||
|
console.log('下载描述文件失败' + err)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await init()
|
||||||
const param: donwloadParam = {
|
const param: donwloadParam = {
|
||||||
appId: APP_ID,
|
appId: APP_ID,
|
||||||
ip: ip.value,
|
ip: ip.value,
|
||||||
@@ -186,7 +182,7 @@ export function useAppDownload() {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return terminal === 'ios'
|
return terminal === 'ios'
|
||||||
? await downloadIos(param, index === 1)
|
? await downloadIosStore(param)
|
||||||
: await downloadAndroid(param, index)
|
: await downloadAndroid(param, index)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('下载失败' + JSON.stringify(err))
|
console.log('下载失败' + JSON.stringify(err))
|
||||||
|
|||||||
Reference in New Issue
Block a user