3

このトピックは以前に取り上げましたが、私が求めているものに固有の答えを見つけることができません。

私がいる場所:ここでhackmodの最初のアドバイスに従いました:Androidブラウザーでリンクを作成してアプリを起動しますか?これをWebページのリンクで機能させることができます。

ただし、2番目のオプション(インテントURI)を理解するのに問題があります。これが私が持っているものです:

    <activity android:name="com.myapps.tests.Layout2"
        android:label="Auth Complete"
        >
        <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:scheme="http" android:host="mydomain.com"
                android:path="/launch" />
        </intent-filter>
    </activity>

これで、「mydomain.com/launch」にアクセスしてアクティビティを開始できます。私がチューザーを取得することを除いて、これはすべてうまく機能します。私が望んでいるのは、オプションを与えずにアクティビティを開始することです。

私が参照した投稿の説明から、それが意図的なurisの目的であるように見えますが、簡単な例を見つけることができません。セレクターなしでこれを起動するには、Webページのリンクはどのように表示されますか?

次のような例をいくつか見てきました。

<a href="intent:#Intent;action=com.myapp.android.MY_ACTION;end">

しかし、私が試してみると、それはうまくいかないようです。

私のテストデバイスはGalaxyTab2です。

どんな助けでもいただければ幸いです。

4

4 に答える 4

8

また、推奨される方法でアプリを起動しようとしていました。次のコードは私のために働いた。

AndroidManifest.xmlの<activity>ブロック内のコード:YourActivity

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
    <action android:name="your.activity.namespace.CUSTOMACTION" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

アクティビティonCreate()メソッドのコード:

Intent intent = getIntent();
if(intent != null && intent.getAction() == "your.activity.namespace.CUSTOMACTION") {
    extraValue = intent.getStringExtra("extraValueName");
    Log.e("AwseomeApp", "Extra value Recieved from intent : " + extraValue);
}

your.activity.namespace.CUSTOMACTIONHTMLのコードの場合、アクションとアプリケーションパッケージ名を使用して、特定のアクティビティを起動するためのインテントを記述しますyour.activity.namespace。インテントに余分なものを入れることもできます。たとえばintent.putExtra("extraValueName", "WOW")intent.toUri(Intent.URI_INTENT_SCHEME)次に、の値をログに出力して、必要なURLを取得します。次のようになります。

intent:#Intent;action=your.example.namespace.CUSTOMACTION;package=your.example.namespace;component=your.example.namespace/.activity.YourActivity;S.extraValueName=WOW;end

したがって、HTMLコードは次のようになります。

<a href="intent:#Intent;action=your.example.namespace.CUSTOMACTION;package=your.example.namespace;component=your.example.namespace/.activity.YourActivity;S.extraValueName=WOW;end">
    Launch App
</a>

これは、@hackbodがこことdevelopers.google.comのこのページで提案したとおりです。

于 2014-02-06T12:11:27.340 に答える
6

インテントフィルターに応じて、このリンクは機能するはずです。

<a href="http://mydomain.com/launch">start my app</a>

ただし、Androidシステムは、アプリまたは他のブラウザを起動する必要があるかどうかをユーザーに尋ねることに注意する必要があります。

これを回避したい場合は、カスタムプロトコルハンドラーを実装してください。したがって、アプリだけがそれをリッスンし、ユーザーはインテントチューザーを取得しません。

このデータインテントを追加してみてください。

<data android:scheme="mycoolapp" android:host="launch" />

上記のコードで、このリンクは機能するはずです:

<a href="mycoolapp://launch">start my app</a>
于 2013-03-24T09:27:48.093 に答える
5

この機能を実現するには、abhishek89m'aの回答に小さな変更を加える必要がありました。

<a href="intent:#Intent;action=your.example.namespace.CUSTOMACTION;package=your.example.namespace;component=your.example.namespace/.YourActivity;S.extraValueName=WOW;end">
    Launch App
</a>

コンポーネント名のスラッシュの後の「.activity」を削除しました。

また、アプリチューザーを表示したくない場合は、この問題に対するカスタムアクションがおそらく最良の答えであると付け加えたいと思います。

psこれをコメントとして追加しますが、私は新しいユーザーであり、十分なレピュテーションポイントがありません。

于 2015-04-03T09:02:57.720 に答える
2
<a href="your.app.scheme://other/parameters/here">

ブラウザのこのリンクは、インテントのような特定のスキーマでアプリを起動します

<intent-filter>
<data android:scheme="your.app.scheme" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
于 2013-03-24T09:31:05.020 に答える