1

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

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

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

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

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

第 5 步:用户需要从 Web 浏览器或 Android 手机的电子邮件应用程序打开激活电子邮件

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

6.a 用户通过 URL 被激活

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

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

问题

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

执行:

我在应用程序清单中为登录屏幕活动定义定义了自定义 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>
4

0 回答 0