我可以通过电子邮件中的链接将变量传递给Android应用程序吗?

我可以通过电子邮件中的链接将变量传递给Android应用程序吗?,android,cordova,Android,Cordova,我有一个用户注册的服务,注册过程的一部分需要电子邮件确认。用户可以通过三种方式注册该服务。在网络上,使用iPhone应用程序,或使用Android设备 当我向他们发送电子邮件以确认他们的注册时,我可以包含完成注册的链接,并且为了方便用户进行注册,我可以附加他们的用户名和验证码,然后将其自动放入表单中 对于HTML链接,它如下所示: <a target="_blank" href="https://mysite.com/confirmation.html?verification=XXXXX

我有一个用户注册的服务,注册过程的一部分需要电子邮件确认。用户可以通过三种方式注册该服务。在网络上,使用iPhone应用程序,或使用Android设备

当我向他们发送电子邮件以确认他们的注册时,我可以包含完成注册的链接,并且为了方便用户进行注册,我可以附加他们的用户名和验证码,然后将其自动放入表单中

对于HTML链接,它如下所示:

<a target="_blank" href="https://mysite.com/confirmation.html?verification=XXXXXXXXX&username=larry">Complete verification on the web</a>
super.loadUrl(“file:///android_asset/www/index.html”);

我可以通过链接到PHP脚本在iPhone上打开应用程序:

<a target="_blank" href="https://mysite.com/iphoneopen.php?verification=XXXXXXXXX&username=larry">complete your verification with the iPhone app</a>

在PHP脚本中,我有以下内容:

<meta http-equiv="refresh" content="0;URL=myappname://?verification=XXXXXXXXX&username=larry"/>

我应该在Android上使用什么代码,这样当用户在手机上收到电子邮件时(可能是通过GMail应用程序),他们可以点击一个链接,直接进入应用程序?我如何在链接中包含变量


我正在为我的Android应用程序使用AdobePhoneGap构建,所以它是用Javascript和HTML构建的。因此,我不知道什么是“意图过滤器”。回答时请考虑到这一点。感谢您的理解。

我不知道如何使用
Phonegap
等工具,但使用纯
Android
,当您的应用程序打开时,您的
活动将实际由
意图启动,因此您可以使用
getIntent().getUri()
,您将实际获得启动应用程序的url。然后,您可以从那里提取查询参数。

在您的
AndroidManifest.xml
中,您需要添加以下
xml
作为
活动的子级,这将添加一个意图过滤器(您不需要知道更多):

添加以下代码(在上一行之后):


您需要一个Web服务,当android应用程序向您的Web服务发出请求时,它将响应用户名和验证码,然后您需要解析响应。您可以使用KSOAP2进行请求,也可以根据您将使用的Web服务进行请求。感谢提供此信息。这描述了我如何使用传递给应用程序的变量,但除非我没有看到它,否则它不会描述如何在电子邮件中构造链接,这就是问题所在。这与在任何
URL
中传递变量相同。与
HTML
链接相同。抱歉,但我认为情况并非如此。如果你看一下我问题中示例中链接到Android应用程序的URL格式,没有明确的地方可以放置变量。。。它是一个
IntentFilter
。当用户使用提供的scheme://host 地图。谢谢你的帮助,但我只是不明白你在说什么。我没有和你一样的专业水平,所以你的术语和假设知识我无法理解。我不知道什么是意图过滤器,或者什么是方案和主机映射。我无法将你所说的任何内容解析为我如何写出包含在电子邮件中的链接的概念。
super.loadUrl(“file:///android_asset/www/index.html”);
try {
    Uri uri = getIntent().getData();
    String data = uri.getSchemeSpecificPart();//this will set data to //mysite.com/iphoneopen.php?verification=XXXXXXXXX&username=larry
    if (data != null) {
        String[] vars = data.split("?");
        vars = vars[1].split("&");
        String verification = vars[0].split("=")[1];
        String username = vars[1].split("=")[1];
        //TODO: handle verification and username from here.
    }
} catch (Throwable t) {
    t.printStackTrace();
}