如何从 Android 中的电子邮件 URL 打开已安装的应用程序? [复制]

Posted

技术标签:

【中文标题】如何从 Android 中的电子邮件 URL 打开已安装的应用程序? [复制]【英文标题】:How to open an installed app from an email URL in Android? [duplicate] 【发布时间】:2014-11-21 01:10:19 【问题描述】:

我想从电子邮件 URL 打开我的应用程序,基本上就像下面显示的 Twitter.com 示例一样。

带有链接的电子邮件:

选择打开应用或浏览器:

点击应用选项后,Twitter 应用打开:

我尝试了以下代码,但它不起作用:

<intent-filter>
    <action android:name="android.intent.action.VIEW"></action>
    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>
    <data android:host="www.twitter.com" android:scheme="http"></data>
</intent-filter>

如果有人有正确的答案,请在这里写一些例子。

【问题讨论】:

将 android:host 值更改为您的 url 主机路径,并将 android:scheme 从 http 更改为 https。应该工作 我想打开我的应用,这只是一个例子。@VnyKumar @VnyKumar 我想打开我的应用我应该在清单文件中写什么? 只需浏览这个Deeplinking google 文档。您将了解这个深层链接的概念。我希望这对身体有所帮助。 【参考方案1】:

例如:您的网址将类似于https://roadies.com,并且您在清单中有如下意图过滤器

        android:name="com.droid.MainActivity"
        android:label="@string/app_name" >

        <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="roadies.com"
            android:scheme="https" />
    </intent-filter>

    </activity>

【讨论】:

您是否能够在您的 config.xml 文件中配置此功能,或者您是否直接更新 AndroidManifest.xml【参考方案2】:

以下代码对我有用:

<intent-filter>
    <action android:name="android.intent.action.VIEW"></action>

    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>

    <data
        android:host="www.my.app.com"
        android:path="launch"
        android:scheme="http"></data>
</intent-filter>

电子邮件链接设置为http://www.my.app.com/launch

参考:Launching Android Application from link or email

【讨论】:

您是否能够在您的config.xml 文件中配置此功能,或者您是否直接更新AndroidManifest.xml 你能解释一下如何让它同时接受http和https吗? @rraallvv,不确定,但您是否尝试使用 https 添加另一个意图过滤器? 成功了,谢谢。我正在寻找类似正则表达式模式的东西,虽然我不确定这是否可行。【参考方案3】:

对我来说,这里发布的答案都没有奏效。我尝试了数十种不同的语法,但都没有成功。我在通过 Cordova 构建应用程序时遇到了解析错误。

我终于遇到了this answered,这让我走上了正轨。

所以我在PROJECT_ROOT/hooks/after_prepare/ 文件夹中创建了一个名为010_add_intent_filters.sh 的挂钩。这是这个钩子的内容:

!/usr/bin/bash

MANIFEST=./platforms/android/AndroidManifest.xml

grep -q pathPattern $MANIFEST &&  print "Manifest already modified. Nothing to do."; exit 0; 

AFTER_LINE='android:name="MainActivity"'
ADDITION='\
  <intent-filter>\
    <action android:name="android.intent.action.VIEW"></action>\
    <category android:name="android.intent.category.DEFAULT"></category>\
    <category android:name="android.intent.category.BROWSABLE"></category>\
    <data android:scheme="https" android:host="google.com" android:pathPattern=".*"></data>\
  </intent-filter>
';

sed -i -e "/$AFTER_LINE/a$ADDITION" $MANIFEST

这终于奏效了。如果您采用挂钩路径,则无需修改 config.xml。我希望这可以帮助有需要的人。

PS:我确信 Cordova 是一项伟大的技术,但我很少见过如此糟糕的文档库……使用它是多么痛苦,简直令人难以置信。

【讨论】:

以上是关于如何从 Android 中的电子邮件 URL 打开已安装的应用程序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从浏览器拦截链接以打开我的 Android 应用程序

如何通过邮件中的android深层链接打开片段?

如何从 url 打开颤振应用程序?

如果通过 Safari 中的网页安装,如何打开应用程序?

Android:如何在 android 中从服务器打开 pdf 文件 [关闭]

从 url/http 下载并打开图片 [Android Xamarin App]