diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 0feec56a490eaeef74213c27de1f2c439a6f00e2..619d11dfad15a326b6d4dc1e9fe234b7c2e6b0ec 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -16,19 +16,21 @@ * [uni错误规范](https://uniapp.dcloud.net.cn/tutorial/err-spec.html) * [跨平台框架及原生对比](select.md) * 离线打包 + * [概述](native/README.md) * Android离线打包 * [原生工程配置](native/use/android.md) * 模块配置 * [内置模块](native/modules/android/others.md) * [uni-ad](native/modules/android/uni-ad.md) + * [uni-facialRecognitionVerify](native/modules/android/uni-facialRecognitionVerify.md) + * [uni-payment](native/modules/android/uni-payment.md) * [uni-push](native/modules/android/uni-push.md) + * [uni-video](native/modules/android/uni-video.md) * [uni-verify](native/modules/android/uni-verify.md) - * [uni-payment](native/modules/android/uni-payment.md) - * [uni-facialRecognitionVerify](native/modules/android/uni-facialRecognitionVerify.md) * [资源导入](native/export/export.md) * [调试](native/debug/android.md) * [打包发行](https://nativesupport.dcloud.net.cn/AppDocs/package/android.html) - * [离线SDK](native/download/android.md) + * [离线SDK](native/download/android.md) * 更新日志 * [正式版](release.md) * [Alpha 版](release-note-alpha.md) diff --git a/docs/native/modules/android/uni-video.md b/docs/native/modules/android/uni-video.md index 2f1833aba2e2c1773a0eb14c35b03899c94893e0..acb16abb899934912c409755181a830453cb5861 100644 --- a/docs/native/modules/android/uni-video.md +++ b/docs/native/modules/android/uni-video.md @@ -21,7 +21,7 @@ ### 组件注册 -将以下内容添加到主模块的build.gradle,详见[根据configjson配置应用](../../use/android.md#根据configjson配置应用)。 +将以下内容添加到主模块的build.gradle,详见[根据configjson配置应用](../../use/android.md#utscomponents)。 ```groovy defaultConfig { diff --git a/docs/native/use/android.md b/docs/native/use/android.md index 60d904728b11e05335c6716f626c4f61bc39c476..faaaeffa1d0e0bfd83304cda49a6f738f80cce1f 100644 --- a/docs/native/use/android.md +++ b/docs/native/use/android.md @@ -357,8 +357,10 @@ dependencies { allprojects {} ``` + + - components - + components 为uts组件的注册信息。需要将components对应的内容添加到主模块的build.gradle。参考配置: ```groovy @@ -470,6 +472,8 @@ startActivity(Intent(this, UniAppActivity::class.java)) 退出应用可以调用`uni.exit()`,整体退出uni-app x。 +如果需要在uni-app x与原生工程之间通信,可以参考[文档](androidcomm.md)。 + 连接手机,点击运行按钮,可以在手机上查看效果。 ![avatar](https://img.cdn.aliyun.dcloud.net.cn/nativedocs/5%2BSDK-android/image/7-6.png) diff --git a/docs/native/use/androidcomm.md b/docs/native/use/androidcomm.md new file mode 100644 index 0000000000000000000000000000000000000000..ed2eb22890f8ef4ca3c6172c87cff27b39aba61b --- /dev/null +++ b/docs/native/use/androidcomm.md @@ -0,0 +1,140 @@ +## uni-app x 与 android 原生工程通信 + +### 广播方式 + +实现实时通讯可以通过安卓原生的广播通信的方式。 + +#### uni-app x项目 + +首先需要在当前页面注册一个BroadcastReceiver接受android原生应用发送的广播信息。 + +发送广播可以通过`UTSAndroid.getUniActivity()?.sendBroadcast(intent)`将信息传送到原生。 + +```uvue + + + + + +``` + +#### android原生项目 + +首先需要在当前activity注册一个BroadcastReceiver接受uni-app x发送的广播信息。 + +发送广播可以通过`sendBroadcast(inte)`将信息传送到uni-app x。 + +```kotlin +class MainActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.main_activity) + findViewById(R.id.btn_goto).setOnClickListener { + startActivity(Intent(this@MainActivity, UniAppActivity::class.java)) + registerReceiver(broadcast, IntentFilter("ACTION_TO_NATIVE")) + } + } + + private val broadcast = object : BroadcastReceiver() { + val handler = Handler(Looper.getMainLooper()) + override fun onReceive(context: Context, intent: Intent) { + if(intent.action == "ACTION_TO_NATIVE") { + Toast.makeText(context, intent.getStringExtra("key"), Toast.LENGTH_SHORT).show() + handler.postDelayed({ + val inte = Intent("ACTION_FROM_NATIVE") + inte.putExtra("key", "接受来自原生的广播") + sendBroadcast(inte) + }, 3000) + } + } + } + + override fun onDestroy() { + super.onDestroy() + unregisterReceiver(broadcast) + } +} +``` + +**注意:广播要在页面关闭的时候取消注册,避免可能出现崩溃的问题。** + +具体可以参考离线打包SDK中的`app-comm`示例。 \ No newline at end of file