为什么应用程序激活链接无法在Android 4.x上启动应用程序而在2.x上无法启动应用程序

时间:2012-05-31 19:32:37

标签: android intentfilter

我正在尝试在我的Android应用上实施自定义网址方案。这是完整的活动流程:

第1步:用户在设备上下载应用

第2步:用户在设备上安装应用

第3步:用户从注册页面注册应用程序。

步骤4:注册/注册完成后,Web服务器会向用户发送电子邮件以激活帐户

步骤5:用户需要从网络浏览器或电子邮件应用程序中打开激活电子邮件 Android手机

步骤6:当用户点击电子邮件中的激活链接时,系统应执行以下步骤:

6.a用户通过URL激活

6.b系统验证请求是来自计算机还是移动设备(浏览器中的Java脚本代码正在执行此检查)

6.c如果用户使用的是移动设备且设备操作系统是Android,则激活过程应在激活后打开已安装的应用

问题

以上解决方案适用于Android操作系统版本2.x但不适用于操作系统版本4.x如果用户单击Android 4.0设备的电子邮件应用程序中的激活链接,则会出现此问题。激活后,用户将被重定向到页面,移动浏览器将返回错误消息“无法找到网页”

实现:

我在应用程序清单中为登录屏幕活动定义定义了自定义URL方案。从浏览器调用url appnameURLScheme:// appname后,它会启动应用程序的登录屏幕,并通过将浏览器置于后台将应用程序置于最前端。

这是清单:

<activity
   android:name=".AppNameScreen"
   android:screenOrientation="portrait"
   android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
   android:name=".LoginScreen"
   android:screenOrientation="portrait"
   android:theme="@android:style/Theme.NoTitleBar" >
   <intent-filter>
      <data
      android:host="AppName"
      android:scheme="AppNameURLScheme" />
      <action android:name="android.intent.action.VIEW" />
         <category
            android:name="android.intent.category.DEFAULT"/>
         <category
            android:name="android.intent.category.BROWSABLE"/>
   </intent-filter>
</activity>

0 个答案:

没有答案