2013-02-19 82 views
9

嗨,大家好,我一直在尝试从电子邮件链接或某些社交网站上发布的应用程序启动应用程序。我知道这个问题已经被一些朋友提出,但仍然面临的问题是,在某些设备或Android上的某些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-启动我的应用程序) – 2017-02-27 01:00:13

回答

2

建立一个真正的链接(http :),让你控制的网站,如亚马逊s3上的静态网站,使用该网站上的javascript来检测android用户代理,然后重定向到带有锚标签的链接。

+0

你甚至不需要JavaScript。如果''具有网页URL而不是自定义方案,则用户可以选择直接打开该应用程序。 – CommonsWare 2013-02-19 14:49:51

+0

@CommonsWare啊,多数民众赞成在Instagram必须工作。我总是想知道这是如何选择 – CQM 2013-02-19 15:01:34

+0

@CommonsWare你可以请告诉如何定义url而不是定制方案。 – CodingRat 2014-07-22 10:59:49

12

而不是使用自定义的方案,你可以有一个<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一起浏览)具有您的应用的设备上,并且会在没有您的应用的设备上显示您的网页。

+0

谢谢并抱歉延迟回复@CommonsWare。我会试试这个。 – Dinash 2013-02-20 07:17:43

+0

嗨谢谢你的回答,并且它在大多数设备上都能正常工作,但并不是因为它与HTC EVO 4G不兼容。每当我点击链接时,它都会直接打开浏览器,我确信它是如此。还检查是否设置了任何默认值并且未设置。 – Dinash 2013-02-26 06:12:10

+0

@Dinash:这种方法可能无法在美国出货的各种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 2013-02-26 12:52:36

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> 
相关问题