如何在iOS(Swift)上打开外部应用程序,并在完成外部应用程序后返回结果?

ijnw1ujt  于 2023-06-04  发布在  Swift
关注(0)|答案(1)|浏览(400)

我想打开外部银行应用程序支付订单:

UIApplication.shared.open(url) { result in     }

,但此回调在启动银行应用程序后立即执行。当支付成功或取消时,如何在我的应用事件中添加返回支付结果的回调?
在Android上,我可以用

startActivityForResult(intentForMyUrl, REQUEST_CODE)

并在重写

onActivityResult(int requestCode, int resultCode, Intent data) {
   if (requestCode == REQUEST_CODE) {
       //here
   }
}
km0tfn4u

km0tfn4u1#

这取决于是否有一个

情况1 -两个应用之间同步,例如x

当AppA打开AppB时,
1-在App A的info.plist内添加方案
2-在应用程序A的应用程序委托内实现此方法

func application(_ app: UIApplication,open url: URL,options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { 
   if  url.scheme == "fromAppB" {
     // To do
   }
 }

3-在App B中打开此URL

let goToA = URL(string: "fromAppB://\(someDataHere)")!

或者,如果两个应用程序都来自同一个开发者门户,则可以使用共享组,并检查其中的更改

func applicationWillEnterForeground(_ application: UIApplication) { }

关于App A

情况2 -没有同步

然后你需要有一个中间服务器来同步数据并在里面抓取

func applicationWillEnterForeground(_ application: UIApplication) { }

关于App A

相关问题