1

这是我要设置的内容:我的 Android 应用程序需要电子邮件确认。他们使用我的应用程序注册,然后通过链接向他们发送一封电子邮件。我想让该链接直接打开应用程序,但有人告诉我最好在我的网站上打开链接页面,然后使用重定向打开应用程序。该链接还会发送用户的电子邮件地址和验证码。

好的,所以,这样做,我的理解是我需要将此代码添加到我的AndroidManifest.xml(其中 MYAPP 是我的网站名称):

        <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="MYAPP.com" android:path="/confirmation.html" />
        </intent-filter>

然后我的网站在<head>(其中 MYAPP 是我的应用程序的名称)中有一个页面:

meta http-equiv="refresh" content="0;URL=MYAPP://?verification=' . $_GET["verification"] . '&email=' . $_GET["email"] . '"/>

它不起作用,我可能会犯多个错误。

第一个问题是,我<intent-filter>要去哪里?我只读过它在<activity>标签内,但在我的标签中AndroidManifest.xml,我有两个<activity>标签:

    <activity android:label="@string/app_name" android:name=".MYAPP" android:screenOrientation="unspecified" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:label="@string/app_name" android:name="com.phonegap.DroidGap">
        <intent-filter />
    </activity>

我尝试将我<intent-filter>的合二为一,但这似乎不起作用:

    <activity android:label="@string/app_name" android:name=".MYAPP" android:screenOrientation="unspecified" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </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:scheme="http" android:host="MYAPP.com" android:path="/confirmation.html" />
        </intent-filter>
    </activity>
    <activity android:label="@string/app_name" android:name="com.phonegap.DroidGap">
        <intent-filter />
    </activity>

我把我的放在哪里<intent-filter>

我的其余代码,尤其是我的重定向 URL,好吗?

请注意我是初学者,我正在使用 Phonegap 来构建这个应用程序,所以请不要假设我对 Android 应用程序开发了解很多。感谢您的理解。

4

2 回答 2

2

在你里面的活动标签是这样的:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".My_Activity_Name"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application

在您的这段代码中,最后一个活动的起始意图过滤器标记在哪里:

<activity android:label="@string/app_name" android:name=".MYAPP" android:screenOrientation="unspecified" android:configChanges="locale|keyboard|keyboardHidden|orientation|screenSize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </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:scheme="http" android:host="MYAPP.com" android:path="/confirmation.html" />
    </intent-filter>
</activity>
<activity android:label="@string/app_name" android:name="com.phonegap.DroidGap">
    <intent-filter />
</activity>
于 2013-08-21T09:04:00.773 回答
0

原来我的意图过滤器在正确的位置。

它不起作用的原因仅仅是因为我需要一个额外的行来说明https链接。

所以我的代码现在看起来像这样:

    <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="MYAPP.com" android:path="/confirmation.html" />
        <data android:scheme="https" android:host="MYAPP.com" android:path="/confirmation.html" />
    </intent-filter>
于 2013-08-22T07:32:21.860 回答