以下是我要设置的内容:我的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>
?
我的其余代码,尤其是我的重定向网址,还好吗?
请注意我是初学者,我正在使用Phonegap来构建这个应用程序,所以请不要认为我对Android应用程序开发有很多了解。谢谢你的理解。
答案 0 :(得分:1)
在您的活动标签内:
<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
在您的此代码中,上一个活动的起始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>
答案 1 :(得分: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>