从本机 iOS 和 Android 应用启动到 OutSystem 移动应用的特定屏幕

Launch to specific screen of OutSystem mobile app from native iOS and Android app

我是 Outsystems 的新手,我们遇到了这样一种情况,即我们想要从我们的原生 iOS 和 Android 应用程序启动 Outsystems 移动应用程序的特定屏幕。

我们已经使用 corodova 插件向 Outsystems 移动应用程序添加了 URL 方案。还将 LSApplicationQueriesSchemes 添加到我的原生 iOS 应用程序。 Android 应用程序仍在开发中。

Outsystems 应用程序从本机 iOS 应用程序启动,但我们需要将其启动到特定屏幕。我们在 Outsystems 应用程序中有一个登录页面,我们需要绕过它。

我假设外部系统应用程序必须在 URLs 或深层链接上工作,但看起来并非如此。

你们能帮帮我吗??即使是实现它的模糊想法也会有所帮助。

对于需要本机代码 (Kotlin) 来启动 Outsystems 应用程序的 Android 开发人员

val packageName = "in.co.companyname.appname"
            val context = getActivity()
            val pm = context!!.packageManager

            val myAction = Uri.parse("in.co.companyname.appname://Module/Screen?parameter1=para1&parameter2=para2")
            // Initialize a new Intent
            val intent: Intent? = pm.getLaunchIntentForPackage(packageName)
            if(intent!=null){
                intent!!.setAction(Intent.ACTION_VIEW)
                intent!!.setData(myAction)
                context!!.startActivity(intent)
            }else{
                Toast.makeText(activity!!, "Please install the App", Toast.LENGTH_SHORT).show()
            }

对于 iOS 开发人员

UIApplication.shared.open(URL.init(string: "in.co.companyname.appname://Module/Screen?parameter1=para1&parameter2=para2")!, options: [:], completionHandler: nil)

This documentation 应该有帮助...我已经用 Android 进行了测试,并且能够成功构建深度 links 并将它们编码在 NFC 标签中。

简短版本:深度 link 使用以下语法构造:

<app-identifier>://<module>/<screen>

其中 app-identifier 是您应用的本机应用标识符,module 和 screen 是您要使用深度 link 打开的模块和屏幕名称。

因为我手边没有 iOS 设备,所以我无法专门在 iOS 上进行测试。