从链接或电子邮件启动Android应用程序

嗨,大家好,我一直在尝试从电子邮件链接或某些社交网站上发布的应用程序启动应用程序。 我知道这个问题已经提出了一些朋友,但仍然面临的问题是,在一些设备或Android上的某些gmail应用程序不显示我指定的锚标记或链接。

我为我的活动设置的意图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="myappname" /> 

我正在用这个锚标签发送电子邮件

 myappname://processtobedone/?id=1 

它适用于我在Huewai设备上的电子邮件应用程序,但在设备的默认gmail应用程序中,它没有显示它有一个链接,在某些设备默认情况下,它会附加https:作为标签的后缀并启动浏览器。

希望你能理解我的问题,希望能有更好的回应。

预先感谢。

您可以使用<intent-filter>来标识您控制的URL,而不是使用自定义scheme:

 <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链接将在您的应用程序的设备上显示您的应用程序(在select器中,以及网页浏览),并将显示您的网页上没有您的应用程序的设备。

做一个真正的链接(http :),去你控制的网站,如亚马逊S3上的静态网站,使用该网站上的JavaScript来检测Android用户代理,然后redirect到与锚标记的链接。

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