微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果是重定向 url,则深层链接不起作用

如何解决如果是重定向 url,则深层链接不起作用

我正在使用 Capacitor(与 VueJS),我的深层链接工作正常,但如果它是重定向 URL,则它不起作用。

我想使用 oauth2 连接到 Facebook。当我输入我的 Facebook 登录名/密码时,Facebook 将我重定向到我的服务器 API“https://myapi.com/mydeeplink”,但我的应用程序不会触发深层链接(它不会询问我是否要打开这个 URL 与我的应用程序)。

我知道这是因为重定向 URL,因为如果我在 Google Chrome 中手动转到“https://myapi.com/mydeeplink”,它就可以工作。

问题是:如果是重定向网址,是否可以触发深层链接

解决方法

OKAY 看来我找到了答案!

使用 Capacitor 我们必须使用浏览器插件。

当我点击我的 Facebook 按钮登录时,我将调用 Browser.open 以每次都会触发 AppUrlOpen 的方式打开链接(即使它是重定向网址)

    async LoginWithFacebook() {
      await this.$browser.open({ url: this.$api_addr + 'auth/facebook' });
    },

..我用脸书登录..
..我的服务器将我重定向到 app://mydomain/myroute?myquery=param..

然后我可以使用以下命令捕获深层链接: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>

完成

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。