Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
37869cf9
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
144
Star
2
Fork
33
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
9
列表
看板
标记
里程碑
合并请求
11
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
9
Issue
9
列表
看板
标记
里程碑
合并请求
11
合并请求
11
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
37869cf9
编写于
5月 30, 2024
作者:
张
张磊
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
补充uni-app x与原生通信文档,补充部分地址锚点,调整文档顺序。
上级
9a1d2bc9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
151 addition
and
5 deletion
+151
-5
docs/_sidebar.md
docs/_sidebar.md
+5
-3
docs/native/modules/android/uni-video.md
docs/native/modules/android/uni-video.md
+1
-1
docs/native/use/android.md
docs/native/use/android.md
+5
-1
docs/native/use/androidcomm.md
docs/native/use/androidcomm.md
+140
-0
未找到文件。
docs/_sidebar.md
浏览文件 @
37869cf9
...
...
@@ -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
)
docs/native/modules/android/uni-video.md
浏览文件 @
37869cf9
...
...
@@ -21,7 +21,7 @@
### 组件注册
将以下内容添加到主模块的build.gradle,详见
[
根据configjson配置应用
](
../../use/android.md#
根据configjson配置应用
)
。
将以下内容添加到主模块的build.gradle,详见
[
根据configjson配置应用
](
../../use/android.md#
utscomponents
)
。
```
groovy
defaultConfig
{
...
...
docs/native/use/android.md
浏览文件 @
37869cf9
...
...
@@ -357,8 +357,10 @@ dependencies {
allprojects {}
```
<a id='utscomponents'></a>
-
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
)
docs/native/use/androidcomm.md
0 → 100644
浏览文件 @
37869cf9
## uni-app x 与 android 原生工程通信
### 广播方式
实现实时通讯可以通过安卓原生的广播通信的方式。
#### uni-app x项目
首先需要在当前页面注册一个BroadcastReceiver接受android原生应用发送的广播信息。
发送广播可以通过
`UTSAndroid.getUniActivity()?.sendBroadcast(intent)`
将信息传送到原生。
```
uvue
<template>
<view class="content">
<image class="logo" src="/static/logo.png" @click="send"></image>
<view class="text-area">
<text class="title">{{title}}</text>
</view>
</view>
</template>
<script>
// #ifdef APP-ANDROID
import BroadcastReceiver from 'android.content.BroadcastReceiver'
import Context from 'android.content.Context'
import Intent from 'android.content.Intent'
import IntentFilter from 'android.content.IntentFilter'
class MyReciver extends BroadcastReceiver {
constructor() {
}
override onReceive(context : Context, intent : Intent) {
var action = intent.getAction()
if (action.equals("ACTION_FROM_NATIVE")) {
var value = intent.getStringExtra("key");
uni.showToast({
title: value!!
})
}
}
}
// #endif
export default {
data() {
return {
title: '点击图片发送广播',
// #ifdef APP-ANDROID
receiver: null as BroadcastReceiver | null
// #endif
}
},
onLoad() {
},
onReady() {
// #ifdef APP-ANDROID
this.receiver = new MyReciver()
UTSAndroid.getUniActivity()?.registerReceiver(this.receiver!, new IntentFilter("ACTION_FROM_NATIVE"))
// #endif
},
onUnload() {
// #ifdef APP-ANDROID
UTSAndroid.getUniActivity()?.unregisterReceiver(this.receiver!)
// #endif
},
methods: {
send() {
// #ifdef APP-ANDROID
var intent = new Intent("ACTION_TO_NATIVE");
intent.putExtra("key", "接受到广播,三秒钟之后会接收到原生发送的广播");
UTSAndroid.getUniActivity()?.sendBroadcast(intent)
// #endif
}
}
}
</script>
<style>
.content {
display: flex;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-bottom: 50rpx;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>
```
#### 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
<
View
>(
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
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录