如何从 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 打开已安装的应用程序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章