编程语言
首页 > 编程语言> > 从Android中的URL方案打开我的应用程序

从Android中的URL方案打开我的应用程序

作者:互联网

我知道有关于此问题有几个问题,但没有一个问题有助于解决我的问题.

我希望能够从电子邮件/文本/浏览器中单击链接并打开我的应用程序.

我有AndroidManifest.xml代码:

    <!-- Splash Activity -->
    <activity
        android:name=".ui.SplashActivity"
        android:label="@string/app_name"
        android:theme="@style/SplashTheme"
        android:launchMode="singleTask">

        <!-- Launcher intent filter -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <!-- Branch URI scheme -->
        <intent-filter>
            <data android:scheme="myscheme" android:host="open" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>

这似乎完全遵循文档here,但是,当我使用Chrome(或Android浏览器)浏览myscheme时://打开,我的应用程序无法打开,而是我获得了myscheme:// open的Google搜索结果.

任何人都能看到我在这里失踪的那块拼图吗?如何让我的应用程序通过URI打开?

小更新:

阅读完this后,我发现将Chrome导航到市场://详细信息?id = com.myapp无法打开Play商店.相反,它会返回Google搜索结果 – 与尝试直接启动我的应用时相同.这令人困惑.我是否缺少全局操作系统设置以允许深层链接?

解决方法:

Chrome无法通过手动输入的URI方案打开应用.事实上,手动输入的链接永远不会在Chrome中启动外部应用.这是设计 – 无论出于何种原因,Chrome团队认为用户在输入地址后应始终保持在浏览器中.

您可以通过将深层链接置于用户驱动器操作(例如标准< a>标记)后面的某种程度解决此问题,但Chrome有自己的标准,称为Chrome Intents,您应该使用它.根据您使用的设备,标准浏览器也可能如此.

在其他应用程序中,有问题的应用程序是否将自定义URI方案标识为“可点击链接”.为了获得最佳兼容性,您需要将其包含在带有重定向的常规http://链接中.

如果您对深层链接的复杂性有深入的解释感兴趣,this post是一个很好的起点.如果你只是想让它在没有太多额外努力的情况下工作,Branch.io(完全披露:我在分支团队中)解决了这个问题作为免费服务.

标签:android,deep-linking
来源: https://codeday.me/bug/20190522/1154384.html