单击深层链接会在 android 中打开意向选择器
Deeplink on click opens intent chooser in android
我已经为我的活动实施了深度linking。但是当 link 被点击时,一个 Intent 选择器打开询问是从应用程序还是从浏览器打开。如何直接从应用程序打开?
此外,当应用程序未安装时,它不会进入 Playstore。它在浏览器中打开。
下面是我在清单中的代码:
<activity android:name=".activities.VideoNewsDetailActivity"
android:theme="@style/AppThemeActivity"
android:configChanges="orientation|screenSize"
>
<!-- Add this new section to your Activity -->
<intent-filter android:label="@string/videoNewsDetail">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Handle urls starting with "http://www.example.com/products" -->
<data android:scheme="http"
android:host="ddnews.apprikart.in"
android:pathPrefix="/videos" />
<!-- Handle local urls starting with "example://products" -->
<data android:scheme="ddnews.apprikart"
android:host="videos" />
</intent-filter>
</activity>
Intent 过滤器就是这样工作的。如果超过 1 个应用程序可以处理您的意图,它将显示一个意图选择器。是否要在您的应用或浏览器中打开 link 取决于用户。
您的服务器应该处理 playstore 重定向部分。例如你的 deeplink url 是 http://www.example.com/page/1。现在,当应用程序未安装时,服务器可以检查 url 是否从浏览器调用,然后它应该将浏览器重定向到 playstore 的应用程序 url。
@Eric B. 是对的。
即使您只想让您的应用程序打开 link,您也需要在 intent-filter
中使用自定义方案,例如:
android:scheme="ddnews"
并且需要构建 link,例如 ddnews://domain.com/dir/page.html
我已经为我的活动实施了深度linking。但是当 link 被点击时,一个 Intent 选择器打开询问是从应用程序还是从浏览器打开。如何直接从应用程序打开?
此外,当应用程序未安装时,它不会进入 Playstore。它在浏览器中打开。
下面是我在清单中的代码:
<activity android:name=".activities.VideoNewsDetailActivity"
android:theme="@style/AppThemeActivity"
android:configChanges="orientation|screenSize"
>
<!-- Add this new section to your Activity -->
<intent-filter android:label="@string/videoNewsDetail">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Handle urls starting with "http://www.example.com/products" -->
<data android:scheme="http"
android:host="ddnews.apprikart.in"
android:pathPrefix="/videos" />
<!-- Handle local urls starting with "example://products" -->
<data android:scheme="ddnews.apprikart"
android:host="videos" />
</intent-filter>
</activity>
Intent 过滤器就是这样工作的。如果超过 1 个应用程序可以处理您的意图,它将显示一个意图选择器。是否要在您的应用或浏览器中打开 link 取决于用户。
您的服务器应该处理 playstore 重定向部分。例如你的 deeplink url 是 http://www.example.com/page/1。现在,当应用程序未安装时,服务器可以检查 url 是否从浏览器调用,然后它应该将浏览器重定向到 playstore 的应用程序 url。
@Eric B. 是对的。
即使您只想让您的应用程序打开 link,您也需要在 intent-filter
中使用自定义方案,例如:
android:scheme="ddnews"
并且需要构建 link,例如 ddnews://domain.com/dir/page.html