외부 앱과 통신(AOS, iOS)
Android
private val paymentAppPackageName = "com.test.app" private val paymentAppClassName = "$paymentAppPackageName.className" fun onCall() { var intent = Intent(Intent.ACTION_MAIN) intent.addCategory(Intent.CATEGORY_LAUNCHER) var compName = ComponentName(paymentAppPackageName, paymentAppClassName) intent.setComponent(compName) try { startActivityForResult(intent, 1) } catch (e: ActivityNotFoundException) { var downloadIntent = Intent(Intent.ACTION_VIEW, Uri.parse("<https://play.google.com/store/apps/details?id=$paymentAppPackageName>")) startActivity(downloadIntent) } }// AndroidManifest.xml <receiver android:name=".Receiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.test.app.broadcast" /> </intent-filter> </receiver> // Receiver.kt class Receiver : BroadcastReceiver() { private var onListener: ReceiverListener? = null fun setOnListener(_onListener: ReceiverListener?) { onListener = _onListener } override fun onReceive(context: Context, intent: Intent) { val b: Bundle? = intent.extras val iter: Iterator<String> = b!!.keySet().iterator() while (iter.hasNext()) { val key = iter.next() val value: Any? = b.get(key) Log.e("[BroadcastReceiver]", "[$key] $value") } if (onListener != null) onListener!!.GetIntent(intent) } } // ReceiverListener.kt interface ReceiverListener { fun GetIntent(intent: Intent?) } // MainActivity.kt private val paymentAppPackageName = "com.test.app" private val paymentAppBroadcastReceiverName = "$paymentAppPackageName.broadcast" private var receiver: Receiver? = null fun onCall() { receiver = EasyCheckReceiver() receiver!!.setOnListener(object : EasyCheckReceiverListener { override fun GetIntent(intent: Intent?) { Log.d("DEBUG", "broadcast getintent") val jsonObject = JSONObject() val extras: Bundle? = intent!!.extras for (key in extras!!.keySet()) { jsonObject.put(key, extras.get(key)) Log.e("[BroadcastReceiver]", "[$key] ${extras.get(key)}") } } }) var filter = IntentFilter(paymentAppBroadcastReceiverName) this.registerReceiver(receiver, filter) } override fun onDestroy() { super.onDestroy() this.unregisterReceiver(receiver) }
iOS
Troubleshooting
Last updated