首页 > 解决方案 > 如何仅通过地址栏中的 URL 打开应用程序

问题描述

我正在创建一个应用程序。需要重定向地址,该地址应该打开我的应用程序。

所以一般来说 - 当有人在 Android 浏览器中访问正确的 URL 链接时,我想打开我的应用程序。

App Links在我的 Android 应用程序中使用App Links Assistant. 所以我添加了一个适当的意图过滤器,例如:

<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:scheme="https" android:host="example.com" android:path="/app" />
</intent-filter>

然后添加一些逻辑以在用户访问站点时重新加载我的应用程序。我将我的应用程序与我的网站与Digital Asset Links JSON文件相关联。我已经对其进行了测试,并且在助理经理中一切正常。

所以..我在浏览器中输入了地址,只有页面启动了。

添加到index.html一些<a href="">链接来测试它。

<a href="http://example.com/app">HTTP</a><Br>
<a href="https://example.com/app">HTTPS.</a><br>
<a href="app://example.com/app">APP</a><br>

以上所有链接按预期打开应用程序。

重定向?我已经在META标签中添加了重定向到同一个站点...是的,已经创建了一个循环,可以预测。网站加载一遍又一遍。

<META http-equiv="refresh" content="0;URL=http://example.com/app">

同样的情况,如果将协议更改为app重定向META标签,则不会不断加载页面。

我应该改变什么?也许有一些JS脚本可以点击该链接?

我的应用程序使用外部 SSO 模块,该模块应在用户登录时重定向回应用程序。现在,当我可以注册或登录时,它会打开一个外部浏览器,然后重定向到一个站点,然后我必须关闭浏览器才能返回应用程序...对于这种情况,也许还有另一种解决方案,而不是通过另一个站点重定向到后端应用程序。我也不是 SSO 模块的开发人员,因此无法通过重定向来改变行为。

谢谢你。

标签: androidandroid-studio

解决方案


需要重定向地址,该地址应该打开我的应用程序。

这通常是不可能的。很少有(如果有的话)Android Web 浏览器会接受除普通超链接之外的任何应用程序链接。

当然,请注意,Web 浏览器根本不需要支持应用程序链接,并且有许多适用于 Android 的 Web 浏览器。

我应该改变什么?

改变你的期望。


推荐阅读