如何从Android中的电子邮件URL打开已安装的应用?

时间:2014-09-26 05:15:52

标签: android email url twitter html-email

我想从电子邮件网址打开我的应用,基本上就像下面显示的Twitter.com示例。

通过链接发送电子邮件:

Email with link

选择打开应用或浏览器:

Select app or browser

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

Open Twitter app

我尝试了以下代码,但它无效:

<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>

如果有人有正确答案,请在此处写一些例子。

4 个答案:

答案 0 :(得分:12)

以下代码对我有用:

<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

答案 1 :(得分:9)

只需浏览此Deeplinking google文档即可。您将了解这种深层链接概念。

我希望这会对某些人有所帮助。

答案 2 :(得分:3)

例如:您的网址将类似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>

答案 3 :(得分:2)

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

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

所以我在名为PROJECT_ROOT/hooks/after_prepare/的{​​{1}}文件夹中创建了一个钩子。这是这个钩子的内容:

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 。我希望这可以帮助有需要的人。

PS:我相信科尔多瓦是一项伟大的技术,但我很少见到这样一个记录严重的图书馆...使用它是多么痛苦是令人难以置信的。