如何在 Android 上的我的应用程序中打开 link

How to open a link in my application on Android

当我从社交媒体网站点击我的网站 post 时,我想在我的应用程序中打开这个 post(内容),而不是在网络浏览器中打开。

例如:当点击 www.example.com/news/365 打开这个 post 进入我的应用程序。

我将这段代码添加到清单中:

<activity android:name=".singleVideo.view.SingleVideoActivity">

    <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:host="www.example.com"
            android:pathPrefix="/news"
            android:scheme="http" />

    </intent-filter>

</activity>

然后我在 activity 中添加此代码:

Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();

现在当我点击这个 link : www.example.com/news/365 时,它会打开我的应用程序,但它不会显示 post 内容(标题、图片、描述等。 ..).

我该怎么做?请帮助我。

提前致谢。

使用data.getPath() 方法。

那将 returns 365 (也许..阅读文档。https://developer.android.com/reference/android/net/Uri.html

并使用你的 API (REST API )!

如果你还没有 API。只需制作或使用 HTML 解析库。 (比如 jsoup https://jsoup.org

这称为深层链接。

在网络上,URL www.example.com/news/365 只是您的网络浏览器用来请求特定 HTML 文档的地址。此 HTML 文档包含用于定义加载内容时将显示的内容的代码。地址www.example.com/news/365本身不包含任何内容。

通过将这些片段添加到应用的清单和 Activity 中,您所做的是将地址 www.example.com/news/365 与应用内的特定 activity 相关联,此外还有特定的 HTML 网络上的页面。这意味着如果安装了您的应用程序并打开了该地址,用户将可以选择(或者不选择,如果 autoVerify 配置正确实施)是在网络浏览器中还是在您的应用程序中打开地址。但是,重要的是要知道 www.example.com/news/365 本身 仍然不包含任何内容。就您的应用程序而言,这只是一个空位置。您仍然需要执行检索地址并使用它来确定向用户显示什么 image/title/description 的工作。

在不了解您的应用程序和 API 设置方式的全部细节的情况下,实际上不可能为您提供示例代码。官方 Android deep linking guide 是一个很好的起点。

或者,您可以研究像 Branch.io 这样的深度 linking 平台(全面披露:我在 Branch 团队),这使得所有这一切变得更加简单,因为您只需要要做的是传递一组 key:value 对,每个 link。我们还让您的 link 即使在应用程序尚未安装时也能正常工作,这被称为 deferred deep linking.