开始一个ACTION_VIEW活动来打开浏览器,我该如何返回到我的应用程序?

在我的应用程序,我需要打开银行的页面,使用户能够支付。 阅读Android文档,我发现我应该使用ACTION_VIEW (而不是WebView)来完成这个任务。

  Uri uri = Uri.parse("http://www.example.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 

我的问题是:用户完成付款后, 我怎么回到应用程序

我的意思是,我想要做类似的事情

 startActivityForResult(intent, RESULT_CODE); 

打开银行的网站,然后回到应用程序,当用户完成后,使用

 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

callback来处理付款的结果。

而且,我遵循正确的方式? 或者有没有其他的方法来完成这个?

Solutions Collecting From Web of "开始一个ACTION_VIEW活动来打开浏览器,我该如何返回到我的应用程序?"

浏览器如何知道用户已经完成银行页面? 这是无法知道的。

另外,浏览器不会通过设置result和finish()来对startActivityForResult()做出反应。

所以,你不能使用Android浏览器来完成这个任务。

唯一可行的方法是启动WebView并检测用户何时完成,通过检测用户完成银行任务时显示的(假定)某个URL。

其实你可以用不同的方式回到你的通话活动。 如果您正在调用的网页由您处理,或者允许您在用户完成球机处理时指定回叫,则可以将该callback设置为URI,并将该URI分配给您的呼叫活动(如果活动启动模式为singleTask,那么你将能够恢复你的活动。

唯一没有解决的问题是,我不知道如何从浏览器中删除浏览器,一旦它返回到您的调用活动。 我想要做到这一点,因为一旦你离开你的应用程序,androidpopup浏览器活动到前面,迫使用户完成它自己。

只需在你的startActivityForResult方法中join一个ResultCode参数,就像=this.startActivityForResult(intent, PAYMENT_ACCEPTED)

当您完成第二个活动时,它将作为resultCode返回。