|
|
@@ -19,7 +19,7 @@
|
|
|
<ion-icon :icon="caretForwardCircleOutline"></ion-icon>
|
|
|
</div>
|
|
|
</div> -->
|
|
|
- <!-- <div class="btn-invite" @click="drawQr"></div> -->
|
|
|
+ <!-- <div class="btn-invite" @click="onOpenInviteModal"></div> -->
|
|
|
</div>
|
|
|
<div class="stat">
|
|
|
<div class="bg">
|
|
|
@@ -47,7 +47,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="invite" @click="drawQr">
|
|
|
+ <div class="invite" @click="onOpenInviteModal">
|
|
|
<img src="@/assets/invite-bg.png" alt="" class="invite-bg" />
|
|
|
<span class="animate__pulse animate__animated animate__infinite">{{ $t('distribution.invite') }}</span>
|
|
|
</div>
|
|
|
@@ -93,6 +93,7 @@ import { Filesystem, Directory, Encoding } from '@capacitor/filesystem'
|
|
|
import { Media } from '@capacitor-community/media'
|
|
|
import emptyImg from '@/assets/img_empty.png'
|
|
|
import '@/styles/animate.css'
|
|
|
+import { AppsFlyer } from 'appsflyer-capacitor-plugin'
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
@@ -144,7 +145,7 @@ export default {
|
|
|
this.showToolbar = this.$route.meta.showToolbar === true
|
|
|
setTimeout(() => {
|
|
|
if (this.$route.query.showShare === 'true' || this.$route.query.showShare == true) {
|
|
|
- this.drawQr()
|
|
|
+ this.onOpenInviteModal()
|
|
|
}
|
|
|
this.$router.replace({ query: {} })
|
|
|
}, 500)
|
|
|
@@ -161,25 +162,31 @@ export default {
|
|
|
this.empty = res.empty
|
|
|
})
|
|
|
},
|
|
|
- drawQr() {
|
|
|
+ async getInviteUrl() {
|
|
|
+ if (Capacitor.isNativePlatform()) {
|
|
|
+ const { link } = await AppsFlyer.generateInviteLink({
|
|
|
+ addParameters: { invitor: `${this.user.id}`, af_sub1: `${this.user.id}` }
|
|
|
+ })
|
|
|
+ return link
|
|
|
+ } else {
|
|
|
+ return `https://ifirstcash.onelink.me/cQAJ?af_js_web=true&af_ss_ver=2_3_0&pid=af_user_invite&invitor=${this.user.id}&af_sub1=${this.user.id}&af_ss_ui=true`
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async onOpenInviteModal() {
|
|
|
let qrImg = new Image()
|
|
|
let bgImg = new Image()
|
|
|
- let userId = this.user.id
|
|
|
- function loadQR(text) {
|
|
|
+ const url = await this.getInviteUrl()
|
|
|
+ function loadQR() {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
- qrcode.toDataURL(
|
|
|
- `https://ifirstcash.onelink.me/cQAJ/d0785cqz?invitor=${userId}`,
|
|
|
- { width: 335, height: 335, margin: 0 },
|
|
|
- function (err, url) {
|
|
|
- if (err) {
|
|
|
- reject(err)
|
|
|
- }
|
|
|
- qrImg.onload = () => {
|
|
|
- resolve()
|
|
|
- }
|
|
|
- qrImg.src = url
|
|
|
+ qrcode.toDataURL(url, { width: 335, height: 335, margin: 0 }, function (err, url) {
|
|
|
+ if (err) {
|
|
|
+ reject(err)
|
|
|
+ }
|
|
|
+ qrImg.onload = () => {
|
|
|
+ resolve()
|
|
|
}
|
|
|
- )
|
|
|
+ qrImg.src = url
|
|
|
+ })
|
|
|
})
|
|
|
}
|
|
|
function loadBg() {
|
|
|
@@ -191,18 +198,17 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
this.$toast.loading('loading...')
|
|
|
- Promise.all([loadQR(), loadBg()]).then(() => {
|
|
|
- this.$toast.dismiss()
|
|
|
- let canvas = document.createElement('canvas')
|
|
|
- canvas.width = 1125
|
|
|
- canvas.height = 1740
|
|
|
- let ctx = canvas.getContext('2d')
|
|
|
- ctx.drawImage(bgImg, 0, 0)
|
|
|
- ctx.drawImage(qrImg, 395, 1095, 335, 335)
|
|
|
- let dataUrl = canvas.toDataURL('image/png')
|
|
|
- this.posterUrl = dataUrl
|
|
|
- this.showShareModal = true
|
|
|
- })
|
|
|
+ await Promise.all([loadQR(), loadBg()])
|
|
|
+ this.$toast.dismiss()
|
|
|
+ let canvas = document.createElement('canvas')
|
|
|
+ canvas.width = 1125
|
|
|
+ canvas.height = 1740
|
|
|
+ let ctx = canvas.getContext('2d')
|
|
|
+ ctx.drawImage(bgImg, 0, 0)
|
|
|
+ ctx.drawImage(qrImg, 395, 1095, 335, 335)
|
|
|
+ let dataUrl = canvas.toDataURL('image/png')
|
|
|
+ this.posterUrl = dataUrl
|
|
|
+ this.showShareModal = true
|
|
|
},
|
|
|
async save() {
|
|
|
if (Capacitor.isNativePlatform()) {
|