将url重定向到app android

时间:2017-08-25 09:37:16

标签: java android intentfilter

我希望将oauth2身份验证的回调重定向到我的应用。我知道chrome的intent过滤器,但它需要用户手动要求应用程序打开。我在互联网上阅读它是不可能自动完成的,但像Instagram这样的应用程序甚至Google的IO应用程序都可以从浏览器打开(这里有一些例子https://instagram.com/_u/instagramhttps://events.google.com/io/schedule)。我也尝试了过滤器(在清单中),但它们也不起作用。我不要求应用程序由oauth中的回调网址触发,如果需要我可以使用后端。我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

我终于找到了问题所在。我尝试使用javascript重定向到我的应用,但Chrome确实阻止了我的请求,所以我尝试在标头中执行此操作并且工作正常!

答案 1 :(得分:0)

您需要什么深层链接。要在链接上打开您的应用程序,您需要在清单中添加意图文件管理器“android.intent.action.VIEW”。

 <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:host="example.com"
                android:pathPrefix="/api/v1/view"
                android:scheme="http" />
        </intent-filter>

一旦你建立了一个与清单中提到的相同签名的链接android系统会在你的应用程序中添加你的应用程序以打开你的应用程序中的链接,你将在相应的Activity中获得“getIntent()。getData()”中的数据。

如果未安装app,则链接本身将在浏览器中打开。然后在浏览器上处理。

要从浏览器发送意图,您需要遵循与清单相同的架构。

"intent://example.com/api/v1/view#Intent;scheme=http;package=com.app;category=android.intent.category.BROWSABLE;component=com.app.yourActivityname;action=android.intent.action.VIEW;end