Deep link 如果是重定向 url 则不起作用
Deep link doesn't work if it's a redirect url
我正在使用 Capacitor(与 VueJS),我的深度 link 工作正常,但如果它是重定向 URL.
它就不起作用
我想使用 oauth2 连接到 Facebook。当我输入我的 Facebook login/password 时,Facebook 将我重定向到我的服务器 API“https://myapi.com/mydeeplink”,但我的应用程序没有触发深度 link (它不会问我是否要用我的应用程序打开这个 URL)。
我知道这是因为重定向 URL,因为如果我手动转到 Google [=24= 中的“https://myapi.com/mydeeplink”,它就可以正常工作].
问题是:如果是重定向 URL 是否可以触发深度 link?
好的,看来我找到答案了!
对于 Capacitor,我们必须使用浏览器插件。
当我点击我的 Facebook 按钮登录时,我将调用 Browser.open 打开 link,AppUrlOpen 每次都会被触发(即使它是重定向 url)
async LoginWithFacebook() {
await this.$browser.open({ url: this.$api_addr + 'auth/facebook' });
},
..我用facebook登录..
..我的服务器将我重定向到 app://mydomain/myroute?myquery=param..
然后我可以通过以下方式捕捉深度link:App.addListener('appUrlOpen' ..)
App.addListener('appUrlOpen', function (data) {
const url = "area://mydomain/myroute"
let slug = data.url.split(url).pop();
if (data.url.startsWith(url)) { // if it's the good url I redirect to my app
this.$router.router(`/${slug ? slug : ""}`);
}
});
关心!要使其正常工作,您需要在此处解释关联文件:
“https://capacitorjs.com/docs/guides/deep-links”,这是强制性的!!
然后你必须把这个添加到你的 Mani
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="app" android:host="mydomain" />
</intent-filter>
完成
我正在使用 Capacitor(与 VueJS),我的深度 link 工作正常,但如果它是重定向 URL.
它就不起作用我想使用 oauth2 连接到 Facebook。当我输入我的 Facebook login/password 时,Facebook 将我重定向到我的服务器 API“https://myapi.com/mydeeplink”,但我的应用程序没有触发深度 link (它不会问我是否要用我的应用程序打开这个 URL)。
我知道这是因为重定向 URL,因为如果我手动转到 Google [=24= 中的“https://myapi.com/mydeeplink”,它就可以正常工作].
问题是:如果是重定向 URL 是否可以触发深度 link?
好的,看来我找到答案了!
对于 Capacitor,我们必须使用浏览器插件。
当我点击我的 Facebook 按钮登录时,我将调用 Browser.open 打开 link,AppUrlOpen 每次都会被触发(即使它是重定向 url)
async LoginWithFacebook() {
await this.$browser.open({ url: this.$api_addr + 'auth/facebook' });
},
..我用facebook登录..
..我的服务器将我重定向到 app://mydomain/myroute?myquery=param..
然后我可以通过以下方式捕捉深度link:App.addListener('appUrlOpen' ..)
App.addListener('appUrlOpen', function (data) {
const url = "area://mydomain/myroute"
let slug = data.url.split(url).pop();
if (data.url.startsWith(url)) { // if it's the good url I redirect to my app
this.$router.router(`/${slug ? slug : ""}`);
}
});
关心!要使其正常工作,您需要在此处解释关联文件:
“https://capacitorjs.com/docs/guides/deep-links”,这是强制性的!!
然后你必须把这个添加到你的 Mani
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="app" android:host="mydomain" />
</intent-filter>
完成