Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-api
提交
07c6275e
U
uni-api
项目概览
DCloud
/
uni-api
通知
675
Star
23
Fork
12
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-api
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
07c6275e
编写于
2月 23, 2023
作者:
lizhongyi_
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev1' into dev
* dev1: uni-usercapturescreen Android 新增禁止截屏API # Conflicts: # pages/index/index.vue
上级
4c7038f8
60a4ccd7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
299 addition
and
255 deletion
+299
-255
pages/index/index.vue
pages/index/index.vue
+251
-254
uni_modules/uni-usercapturescreen/package.json
uni_modules/uni-usercapturescreen/package.json
+2
-1
uni_modules/uni-usercapturescreen/utssdk/app-android/index.uts
...odules/uni-usercapturescreen/utssdk/app-android/index.uts
+46
-0
未找到文件。
pages/index/index.vue
浏览文件 @
07c6275e
<
template
>
<
template
>
<view
class=
"content"
>
<view
class=
"content"
>
<image
class=
"logo"
src=
"/static/logo.png"
></image>
<image
class=
"logo"
src=
"/static/logo.png"
></image>
<view
class=
"text-area"
>
<view
class=
"text-area"
>
<text
class=
"title"
>
{{
title
}}
</text>
<text
class=
"title"
>
{{
title
}}
</text>
</view>
</view>
<button
@
tap=
"testScreenShotListen"
>
开启截屏监听
</button>
<button
@
tap=
"testScreenShotListen"
>
开启截屏监听
</button>
<button
@
tap=
"testScreenShotOff"
>
关闭截屏监听
</button>
<button
@
tap=
"testScreenShotOff"
>
关闭截屏监听
</button>
<button
@
tap=
"testGetBatteryInfo"
>
获取电池电量
</button>
<button
@
tap=
"testSetUserCaptureScreen"
>
{{
setUserCaptureScreenText
}}
</button>
<button
@
tap=
"testonMemoryWarning"
>
开启内存不足告警监听
</button>
<button
@
tap=
"testoffMemoryWarning"
>
关闭内存不足告警监听
</button>
<button
@
tap=
"testGetBatteryInfo"
>
获取电池电量
</button>
<button
@
tap=
"testShowModal"
>
模态弹窗
</button>
<button
@
tap=
"testonMemoryWarning"
>
开启内存不足告警监听
</button>
<button
@
tap=
"testShowModalWithTF"
>
模态弹窗带输入框
</button>
<button
@
tap=
"testoffMemoryWarning"
>
关闭内存不足告警监听
</button>
<button
@
tap=
"testStartWifi"
>
初始化wifi模块
</button>
<button
@
tap=
"testStartWifi"
>
初始化wifi模块
</button>
<button
@
tap=
"testGetWifiList"
>
获取当前wifi列表
</button>
<button
@
tap=
"testGetWifiList"
>
获取当前wifi列表
</button>
<button
@
tap=
"testGetConnnectWifi"
>
获取当前连接的wifi
</button>
<button
@
tap=
"testGetConnnectWifi"
>
获取当前连接的wifi
</button>
<button
@
tap=
"testConnnectWifi"
>
链接wifi
</button>
<button
@
tap=
"testConnnectWifi"
>
链接wifi
</button>
<button
@
tap=
"testStopWifi"
>
关闭wifi模块
</button>
<button
@
tap=
"testStopWifi"
>
关闭wifi模块
</button>
</view>
</view>
</
template
>
</
template
>
<
script
>
<
script
>
import
showModal
from
'
@/uni_modules/uni-showmodal
'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
title
:
'
Hello
'
,
title
:
'
Hello
'
,
memListener
:
null
,
memListener
:
null
,
}
setUserCaptureScreenFlag
:
true
,
},
setUserCaptureScreenText
:
'
禁止截屏
'
onLoad
()
{
}
},
},
onLoad
()
{
methods
:
{
onMemoryWarning
:
function
(
res
)
{
},
console
.
log
(
res
);
methods
:
{
},
onMemoryWarning
:
function
(
res
){
testShowModal
()
{
console
.
log
(
res
);
showModal
({
},
title
:
"
温馨提示
"
,
testConnnectWifi
(){
content
:
"
这是一个模态弹窗
"
,
cancelColor
:
"
#ff0000
"
,
uni
.
connectWifi
({
confirmColor
:
"
#00ff00
"
,
maunal
:
false
,
showCancel
:
true
,
SSID
:
"
Xiaomi_20D0
"
,
success
:
function
(
res
)
{
password
:
"
BBBB
"
,
console
.
log
(
res
)
complete
:(
res
)
=>
{
}
console
.
log
(
res
);
})
}
},
});
testShowModalWithTF
()
{
showModal
({
},
title
:
"
提示
"
,
testGetConnnectWifi
(){
content
:
"
带输入框的弹窗
"
,
uni
.
getConnectedWifi
({
showCancel
:
false
,
partialInfo
:
false
,
editable
:
true
,
complete
:(
res
)
=>
{
placeholderText
:
"
请输入内容
"
,
console
.
log
(
res
);
success
:
function
(
res
)
{
if
(
res
.
errCode
==
0
)
{
console
.
log
(
res
)
uni
.
showToast
({
}
icon
:
'
none
'
,
})
title
:
res
.
wifi
.
SSID
},
})
testConnnectWifi
()
{
}
else
{
uni
.
showToast
({
uni
.
connectWifi
({
icon
:
'
none
'
,
maunal
:
false
,
title
:
res
.
errMsg
SSID
:
"
Xiaomi_20D0
"
,
})
password
:
"
BBBB
"
,
}
complete
:
(
res
)
=>
{
console
.
log
(
res
);
}
}
});
});
},
testStartWifi
(){
},
uni
.
startWifi
({
testGetConnnectWifi
()
{
success
:(
res
)
=>
{
uni
.
getConnectedWifi
({
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
partialInfo
:
false
,
// wifi 开启成功后,注册wifi链接状态监听和wifi列表获取监听
complete
:
(
res
)
=>
{
uni
.
onGetWifiList
(
function
(
res
){
console
.
log
(
res
);
console
.
log
(
"
onGetWifiList
"
);
if
(
res
.
errCode
==
0
)
{
console
.
log
(
res
);
uni
.
showToast
({
});
icon
:
'
none
'
,
uni
.
onWifiConnected
(
function
(
res
){
title
:
res
.
wifi
.
SSID
console
.
log
(
"
onWifiConnected
"
);
})
console
.
log
(
res
);
}
else
{
});
uni
.
showToast
({
uni
.
onWifiConnectedWithPartialInfo
(
function
(
res
){
icon
:
'
none
'
,
console
.
log
(
"
onWifiConnectedWithPartialInfo
"
);
title
:
res
.
errMsg
console
.
log
(
res
);
})
});
}
},
fail
:(
res
)
=>
{
}
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
});
},
complete
:(
res
)
=>
{
},
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
testStartWifi
()
{
}
uni
.
startWifi
({
})
success
:
(
res
)
=>
{
},
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
testStopWifi
()
{
// wifi 开启成功后,注册wifi链接状态监听和wifi列表获取监听
uni
.
stopWifi
({
uni
.
onGetWifiList
(
function
(
res
)
{
success
:(
res
)
=>
{
console
.
log
(
"
onGetWifiList
"
);
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
res
);
},
fail
:(
res
)
=>
{
});
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
uni
.
onWifiConnected
(
function
(
res
)
{
},
complete
:(
res
)
=>
{
console
.
log
(
"
onWifiConnected
"
);
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
res
);
}
});
})
uni
.
onWifiConnectedWithPartialInfo
(
function
(
res
)
{
console
.
log
(
"
onWifiConnectedWithPartialInfo
"
);
},
console
.
log
(
res
);
testGetWifiList
()
{
});
uni
.
getWifiList
({
success
:(
res
)
=>
{
},
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
fail
:
(
res
)
=>
{
},
fail
:(
res
)
=>
{
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
},
},
complete
:(
res
)
=>
{
complete
:
(
res
)
=>
{
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
}
}
})
})
},
},
testStopWifi
()
{
testonMemoryWarning
()
{
uni
.
stopWifi
({
uni
.
onMemoryWarning
(
this
.
onMemoryWarning
)
success
:
(
res
)
=>
{
uni
.
showToast
({
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
icon
:
'
none
'
,
},
title
:
'
已监听,注意控制台输出
'
fail
:
(
res
)
=>
{
})
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
},
},
testoffMemoryWarning
(){
complete
:
(
res
)
=>
{
uni
.
offMemoryWarning
(
this
.
onMemoryWarning
)
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
uni
.
showToast
({
}
icon
:
'
none
'
,
})
title
:
'
监听已移除
'
})
},
},
testGetWifiList
()
{
testScreenShotListen
()
{
uni
.
getWifiList
({
var
that
=
this
;
success
:
(
res
)
=>
{
uni
.
onUserCaptureScreen
(
function
(
res
)
{
console
.
log
(
"
success:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
res
);
},
fail
:
(
res
)
=>
{
if
(
uni
.
getSystemInfoSync
().
platform
==
"
android
"
)
{
console
.
log
(
"
fail:
"
+
JSON
.
stringify
(
res
));
// 除android 之外的平台,不需要判断返回状态码
},
if
(
res
.
errCode
==
-
1
){
complete
:
(
res
)
=>
{
// 启动失败
console
.
log
(
"
complete:
"
+
JSON
.
stringify
(
res
));
return
;
}
}
else
if
(
res
.
errCode
==
0
){
})
uni
.
showToast
({
icon
:
"
none
"
,
},
title
:
'
截屏监听已开启
'
testonMemoryWarning
()
{
})
uni
.
onMemoryWarning
(
this
.
onMemoryWarning
)
}
else
{
uni
.
showToast
({
uni
.
showToast
({
icon
:
'
none
'
,
icon
:
"
none
"
,
title
:
'
已监听,注意控制台输出
'
title
:
'
捕获截屏事件
'
})
})
},
that
.
screenImage
=
res
.
image
testoffMemoryWarning
()
{
}
uni
.
offMemoryWarning
(
this
.
onMemoryWarning
)
}
else
{
uni
.
showToast
({
// 除android 之外的平台,不需要判断返回状态码
icon
:
'
none
'
,
uni
.
showToast
({
title
:
'
监听已移除
'
icon
:
"
none
"
,
})
title
:
'
捕获截屏事件
'
},
})
testScreenShotListen
()
{
}
var
that
=
this
;
uni
.
onUserCaptureScreen
(
function
(
res
)
{
});
console
.
log
(
res
);
if
(
uni
.
getSystemInfoSync
().
platform
!=
"
android
"
)
{
if
(
uni
.
getSystemInfoSync
().
platform
==
"
android
"
)
{
// 除android 之外的平台,直接提示监听已开启
// 除android 之外的平台,不需要判断返回状态码
uni
.
showToast
({
if
(
res
.
errCode
==
-
1
)
{
icon
:
"
none
"
,
// 启动失败
title
:
'
截屏监听已开启
'
return
;
})
}
else
if
(
res
.
errCode
==
0
)
{
}
uni
.
showToast
({
},
icon
:
"
none
"
,
testScreenShotOff
()
{
title
:
'
截屏监听已开启
'
uni
.
offUserCaptureScreen
(
function
(
res
)
{
})
console
.
log
(
res
);
}
else
{
});
uni
.
showToast
({
// 提示已经开始监听,注意观察
icon
:
"
none
"
,
uni
.
showToast
({
title
:
'
捕获截屏事件
'
icon
:
"
none
"
,
})
title
:
'
截屏监听已关闭
'
that
.
screenImage
=
res
.
image
})
}
},
}
else
{
testGetBatteryInfo
()
{
// 除android 之外的平台,不需要判断返回状态码
uni
.
getBatteryInfo
({
uni
.
showToast
({
success
(
res
)
{
icon
:
"
none
"
,
console
.
log
(
res
);
title
:
'
捕获截屏事件
'
uni
.
showToast
({
})
title
:
"
当前电量:
"
+
res
.
level
+
'
%
'
,
}
icon
:
'
none
'
});
});
}
})
if
(
uni
.
getSystemInfoSync
().
platform
!=
"
android
"
)
{
},
// 除android 之外的平台,直接提示监听已开启
testSetUserCaptureScreen
()
{
uni
.
showToast
({
let
flag
=
this
.
setUserCaptureScreenFlag
;
icon
:
"
none
"
,
uni
.
setUserCaptureScreen
({
title
:
'
截屏监听已开启
'
open
:
flag
,
})
success
:
(
res
)
=>
{
}
console
.
log
(
"
setUserCaptureScreen open:
"
+
flag
+
"
success:
"
+
JSON
.
stringify
(
res
));
},
},
testScreenShotOff
()
{
fail
:
(
res
)
=>
{
uni
.
offUserCaptureScreen
(
function
(
res
)
{
console
.
log
(
"
setUserCaptureScreen open:
"
+
flag
+
"
fail:
"
+
JSON
.
stringify
(
res
));
console
.
log
(
res
);
},
});
complete
:
(
res
)
=>
{
// 提示已经开始监听,注意观察
console
.
log
(
"
setUserCaptureScreen open:
"
+
flag
+
"
complete:
"
+
JSON
.
stringify
(
res
));
uni
.
showToast
({
}
icon
:
"
none
"
,
});
title
:
'
截屏监听已关闭
'
uni
.
showToast
({
})
icon
:
"
none
"
,
},
title
:
this
.
setUserCaptureScreenText
testGetBatteryInfo
()
{
});
uni
.
getBatteryInfo
({
this
.
setUserCaptureScreenFlag
=
!
this
.
setUserCaptureScreenFlag
;
success
(
res
)
{
if
(
this
.
setUserCaptureScreenFlag
)
{
console
.
log
(
res
);
this
.
setUserCaptureScreenText
=
'
禁止截屏
'
;
uni
.
showToast
({
}
else
{
title
:
"
当前电量:
"
+
res
.
level
+
'
%
'
,
this
.
setUserCaptureScreenText
=
'
允许截屏
'
;
icon
:
'
none
'
}
});
},
}
}
})
}
},
</
script
>
}
}
<
style
>
</
script
>
.content
{
display
:
flex
;
<
style
>
flex-direction
:
column
;
.content
{
align-items
:
center
;
display
:
flex
;
justify-content
:
center
;
flex-direction
:
column
;
}
align-items
:
center
;
justify-content
:
center
;
.logo
{
}
height
:
200
rpx
;
width
:
200
rpx
;
.logo
{
margin-top
:
200
rpx
;
height
:
200
rpx
;
margin-left
:
auto
;
width
:
200
rpx
;
margin-right
:
auto
;
margin-top
:
200
rpx
;
margin-bottom
:
50
rpx
;
margin-left
:
auto
;
}
margin-right
:
auto
;
margin-bottom
:
50
rpx
;
.text-area
{
}
display
:
flex
;
justify-content
:
center
;
.text-area
{
}
display
:
flex
;
justify-content
:
center
;
.title
{
}
font-size
:
36
rpx
;
color
:
#8f8f94
;
.title
{
}
font-size
:
36
rpx
;
color
:
#8f8f94
;
}
</
style
>
</
style
>
uni_modules/uni-usercapturescreen/package.json
浏览文件 @
07c6275e
...
@@ -34,7 +34,8 @@
...
@@ -34,7 +34,8 @@
"uni-ext-api"
:{
"uni-ext-api"
:{
"uni"
:
{
"uni"
:
{
"onUserCaptureScreen"
:
"onUserCaptureScreen"
,
"onUserCaptureScreen"
:
"onUserCaptureScreen"
,
"offUserCaptureScreen"
:
"offUserCaptureScreen"
"offUserCaptureScreen"
:
"offUserCaptureScreen"
,
"setUserCaptureScreen"
:
"setUserCaptureScreen"
}
}
},
},
"dependencies"
:
[],
"dependencies"
:
[],
...
...
uni_modules/uni-usercapturescreen/utssdk/app-android/index.uts
浏览文件 @
07c6275e
...
@@ -13,7 +13,17 @@ import FileObserver from "android.os.FileObserver";
...
@@ -13,7 +13,17 @@ import FileObserver from "android.os.FileObserver";
import File from "java.io.File";
import File from "java.io.File";
import Environment from "android.os.Environment";
import Environment from "android.os.Environment";
import System from 'java.lang.System';
import System from 'java.lang.System';
import WindowManager from 'android.view.WindowManager';
/**
* setUserCaptureScreen 参数定义
*/
type SetUserCaptureScreenOption = {
open: boolean;
success?: (res: UTSJSONObject) => void;
fail?: (res: UTSJSONObject) => void;
complete?: (res: UTSJSONObject) => void;
}
/**
/**
...
@@ -145,5 +155,41 @@ export function offUserCaptureScreen(success: (res: any) => void) {
...
@@ -145,5 +155,41 @@ export function offUserCaptureScreen(success: (res: any) => void) {
success({});
success({});
}
}
/**
* 设置是否禁止截屏
*/
export function setUserCaptureScreen(option: SetUserCaptureScreenOption) {
const res = {
errCode: 0,
errMsg: "setUserCaptureScreen:ok",
errSubject: "uni-setUserCaptureScreen"
};
UTSAndroid.getUniActivity()?.runOnUiThread(new SetUserCaptureScreenRunnable(option.open));
option.success?.(res);
option.complete?.(res);
}
class SetUserCaptureScreenRunnable extends Runnable {
/**
* true 表示禁止截屏
* false 表示允许截屏
*/
private open: boolean = false;
constructor(open: boolean) {
super();
this.open = open;
}
override run(): void {
if (this.open) {
UTSAndroid.getUniActivity()?.getWindow()?.addFlags(WindowManager.LayoutParams.FLAG_SECURE);
} else {
UTSAndroid.getUniActivity()?.getWindow()?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录