web-dev-qa-db-ja.com

AndroidのメールURLからインストール済みアプリを開く方法は?

基本的に Twitter.com の場合の例のように、メールURLからアプリを開きたい.

リンク付きメール:

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>

誰かが適切な答えを持っているなら、ここにいくつかの例を書いてください。

19
Roadies

次のコードは私のために働いた:

<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に設定します。

参照: 起動Androidリンクまたはメールからのアプリケーション

12
hemu

これをただ通過してください ディープリンク google document。このディープリンクの概念について知ることができます。

これが体に役立つことを願っています。

9
Aristo Michael

例:URLは 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
Vny Kumar

私にとって、ここに投稿された答えはどれもうまくいきませんでした。何十もの異なる構文を試してみましたが、成功しませんでした。 Cordova経由でアプリをビルドしているときに解析エラーが発生していました。

私は最終的に これは答えました に出会い、それが私を正しい軌道に導きました。

そこで、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は素晴らしい技術だと確信していますが、このようなひどく文書化されたライブラリを見たことはめったにありません。

2