2013-02-19 19 views
9

こんにちは、私は電子メールのリンクから、または一部のソーシャルネットワーキングウェブサイトの投稿からアプリケーションを起動しようとしています。私はこの質問が既にいくつかの友人によって提起されているが、私が直面している問題は、アンドロイド上のいくつかのデバイスまたはいくつかのGmailアプリケーションでは、指定したアンカータグまたはリンクを表示しないということです。リンクまたはメールからAndroidアプリケーションを起動する

私は私の活動にセットインテントフィルタは以下の通りです:

<action android:name="android.intent.action.VIEW" /> 
<category android:name="android.intent.category.DEFAULT" /> 
<category android:name="android.intent.category.BROWSABLE" /> 
<data android:scheme="myappname" /> 

と私は、このアンカータグ

myappname://processtobedone/?id=1 

に電子メールを送信しています、それは私のメールアプリケーションで正常に動作しますHuewaiデバイス上にありますが、デバイスのデフォルトのGmailアプリケーションではリンクが表示されていません。一部のデバイスではデフォルトでhttps:がタグの接尾辞として追加され、ブラウザが起動します。

あなたは私の問題を理解し、より良い対応を望むことができますか?

ありがとうございます。

+0

[私のアプリを起動するAndroidのブラウザでリンクを作る?](http://stackoverflow.com/questions/3469908/make-a-link-in-the-android-browser-の可能性のある重複start-up-my-app) –

答えて

2

amazon s3の静的なウェブサイトなど、あなたがコントロールするウェブサイトに行く実際のリンク(http :)を作成し、そのサイトのjavascriptを使用してAndroidユーザーエージェントを検出し、アンカータグを持つリンクにリダイレクトします。代わりに、カスタムスキームを使用しての

+0

JavaScriptは必要ありません。 ''にカスタムスキームではなくWebページURLがある場合、ユーザーは直接アプリケーションを開くことを選択できます。 – CommonsWare

+0

@CommonsWareああ、それはどのように動作する必要がありますか?私はいつもそれがどのように選択されたか疑問に思った。 – CQM

+0

@CommonsWareカスタムスキームの代わりにURLを定義する方法を教えてくれますか? – CodingRat

12

、あなたはあなたがコントロールするURLを識別する<intent-filter>持つことができます。そして、

<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="www.this-so-does-not-exist.com" 
     android:path="/something" 
     android:scheme="http"/> 
</intent-filter> 

を、http://www.this-so-does-not-exist.com/somethingへのリンクは、Webと一緒に、チューで(あなたのアプリが表示されますブラウズ)して、あなたのアプリを持っていないデバイスでWebページを表示します。

+0

お返事ありがとうございます。@CommonsWareの返信が遅れています。私はこれを試してみる。 – Dinash

+0

こんにちはお返事ありがとう、それはHTC EVO 4Gで動作していないので、ほとんどのデバイスですべてではなく、正常に動作します。私はリンクをクリックするたびにブラウザを直接開き、それがなぜそうなのか確信しています。また、デフォルトが設定されているかどうか、また設定されていないかどうかもチェックされます。 – Dinash

+0

@Dinash:このアプローチは、Appleが取得した輸入禁止による回避策のため、米国出荷のさまざまなHTCデバイスでは機能しない可能性があります。 http://commonsware.com/blog/2012/07/23/linkify-problem-patent-behavior.htmlおよびhttp://commonsware.com/blog/2012/07/24/linkify-problem-detection-mitigationを参照してください。 .html – CommonsWare

0
<activity 
android:name=".SplashEmailActivity" 
android:screenOrientation="portrait" 
android:exported="true" 
android:launchMode="singleInstance" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" 
android:windowSoftInputMode="stateHidden|adjustResize" > 

<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="your.domain.name"/> 

</intent-filter> 

</activity> 
関連する問題