我正在开发一个在线商店应用程序。我想使用浏览器将用户定向到付款页面。当用户向价格服务器付款时,将用户直接引导到另一个网页。在该网页中,点击链接并返回到应用,该链接也会显示付款结果。
当用户要付款时,我会使用这样的意图将用户定向到Web浏览器:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("payment-link"));
startActivity(intent);
然后我使用"<a href="">"
标签返回到使浏览器吃饱的活动,如下所示:
在html中:
<a href="intent:#Intent;action=my-package-name;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;S.status=ok;end">Go back to App</a>
在清单中
<activity android:name=".activities.TestActivity">
<intent-filter>
<action android:name="my-package-name" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
但是结果不是我想要的。我想恢复活动,而不是在浏览器堆栈上创建一个。我还使用了android:launchMode="singleInstance"
,但是onBackPressed直接用于活动,我知道这是预期的结果。
是否有恢复活动的任何方式或实现此方案的任何其他建议?谢谢
答案 0 :(得分:0)
我解决了。浏览器应使用Intent.FLAG_ACTIVITY_NO_HISTORY
启动,“ MyActivity”应为singleTask。
在清单中
<activity
android:name=".activities.OrderDetailsActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask">
<intent-filter>
<action android:name="ir.bornait.isan" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
用于启动浏览器:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("payment-link"));
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);