Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
lumastoreapp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xieyishang
lumastoreapp
Commits
b76c3e12
Commit
b76c3e12
authored
Dec 28, 2020
by
haitao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fd
parent
a9f20e26
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
360 additions
and
62 deletions
+360
-62
App.vue
App.vue
+49
-42
manifest.json
manifest.json
+3
-1
pages/index/index.vue
pages/index/index.vue
+33
-18
pages/login/login.vue
pages/login/login.vue
+3
-1
utils/permission.js
utils/permission.js
+272
-0
No files found.
App.vue
View file @
b76c3e12
...
...
@@ -2,7 +2,8 @@
const
bgAudioMannager
=
uni
.
getBackgroundAudioManager
();
const
platform
=
uni
.
getSystemInfoSync
().
platform
;
const
time
=
''
;
import
{
newsRemind
}
from
"
@/utils/api/api.js
"
;
//获取商家消息
import
{
newsRemind
}
from
"
@/utils/api/api.js
"
;
//获取商家消息
import
permision
from
"
@/utils/permission.js
"
;
//App平台的授权判断封装js
export
default
{
onLaunch
:
function
()
{
...
...
@@ -44,7 +45,7 @@
// #endif
this
.
getIosLocation
();
},
...
...
@@ -74,37 +75,51 @@
//var globalEvent = uni.requireNativePlugin('globalEvent'); //全局事件回调 任务启动时间,会有一定延时 一般一分钟内。
},
// hgServiceFun(){
// const pushLive = uni.requireNativePlugin('push-live');
// pushLive.startService({ //启动服务
// title: "鹿马商家助手",
// content: "小鹿正在为您进行实时播报...",
// mode: 1 //0省电模式 1流氓模式
// }, function(res) {
// console.log(res)
// });
// pushLive.isIgnoringBatteryOptimizations(function(res) { //是否添加到白名单中
// if(res.flag){ //添加进去了
// //pushLive.gotoWhiteListSetting();
// }else{
// pushLive.requestIgnoreBatteryOptimizations(); //申请加入白名单
// }
// })
// var globalEvent = uni.requireNativePlugin('globalEvent');
// globalEvent.addEventListener('doJobEvent', function() {
// console.log("我被定时启动了。。。。。。。。。。。。。。。。。")
// });
// console.log(globalEvent)
// },
async
getIosLocation
(
type
){
if
(
platform
==
'
ios
'
){
let
result
=
permision
.
judgeIosPermission
(
'
location
'
);
//是否授权
if
(
result
){
var
cllocationManger
=
plus
.
ios
.
import
(
"
CLLocationManager
"
);
var
status
=
cllocationManger
.
authorizationStatus
();
console
.
log
(
"
status:
"
+
status
);
//4 使用期间 3前后台都执行 0下次询问 2拒绝授权
if
(
status
==
3
||
status
==
0
)
{
uni
.
getLocation
({
type
:
'
gcj02
'
,
success
:(
res
)
=>
{
this
.
getnewsRemind
(
type
);
},
fail
:(
err
)
=>
{
console
.
log
(
err
)
}
});
}
else
{
uni
.
showModal
({
title
:
'
提示:需要获取后台运行权限
'
,
content
:
'
点击“始终”,打开后台运行权限?
'
,
success
:(
res
)
=>
{
if
(
res
.
confirm
){
permision
.
gotoAppPermissionSetting
();
//打开当前设置
}
}
})
}
plus
.
ios
.
deleteObject
(
cllocationManger
);
}
else
{
uni
.
showModal
({
title
:
'
提示:需要获取您的位置信息
'
,
content
:
'
是否进入设置打开位置权限?
'
,
success
:(
res
)
=>
{
if
(
res
.
confirm
){
permision
.
gotoAppPermissionSetting
();
//打开当前设置
}
}
})
}
}
else
{
this
.
getnewsRemind
(
type
);
}
},
//获取 语音消息
async
getnewsRemind
(
type
){
...
...
@@ -113,21 +128,15 @@
let
datestime
=
5000
;
//默认15秒
if
(
this
.
$store
.
state
.
token
!=
""
){
//判断是否 已登录
//#ifdef APP-PLUS
let
cid
=
plus
.
push
.
getClientInfo
().
clientid
//#endif
console
.
log
(
'
这里
'
)
let
res
=
await
newsRemind
({
uid
:
this
.
$store
.
state
.
userInfo
.
user_id
,
cid
:
cid
,
});
if
(
res
.
code
==
0
){
console
.
log
(
'
有语音
'
,
'
--------
'
,
res
);
console
.
log
(
'
语音
'
,
'
--------
'
,
res
);
if
(
res
.
data
.
length
!=
0
){
let
KJres
=
res
.
data
.
filter
(
item
=>
{
//快捷支付
return
item
.
type
==
3
||
item
.
type
==
0
...
...
@@ -178,7 +187,6 @@
}
else
{
if
(
PSres
.
length
!=
0
){
let
msgtext
=
`你有
${
PSres
.
length
}
条鹿马订单,请及时处理`
;
console
.
log
(
'
商城语音播报
'
)
if
(
this
.
$store
.
state
.
isvoice
){
this
.
$store
.
dispatch
(
'
AudioVoice
'
,
msgtext
).
then
((
e
)
=>
{
uni
.
vibrateLong
();
//震动 调用//400ms//长震动
...
...
@@ -192,7 +200,6 @@
KJres
.
map
(
item
=>
{
payText
=
payText
+
"
,
"
+
item
.
contents
});
console
.
log
(
'
快捷支付播报
'
)
if
(
this
.
$store
.
state
.
isvoice
){
this
.
$store
.
dispatch
(
'
AudioVoice
'
,
payText
).
then
((
e
)
=>
{
uni
.
vibrateLong
();
//震动 调用//400ms//长震动
...
...
manifest.json
View file @
b76c3e12
...
...
@@ -66,7 +66,7 @@
/*
ios打包配置
*/
"ios"
:
{
"idfa"
:
false
,
"UIBackgroundModes"
:
[
"audio"
],
"UIBackgroundModes"
:
[
"
location"
,
"
audio"
],
"privacyDescription"
:
{
"NSPhotoLibraryUsageDescription"
:
"需要获得的允许,才能在上传商城产品时选择图片"
,
"NSPhotoLibraryAddUsageDescription"
:
"需要获得的允许,才能在生成店铺二维码后将海报保存到相册"
,
...
...
@@ -212,3 +212,5 @@
}
}
}
/*
SDK配置
*/
pages/index/index.vue
View file @
b76c3e12
...
...
@@ -275,7 +275,6 @@
</view>
</navigator>
</view>
<!-- hgService.showSafeSetting(); -->
<view
class=
"jiu_max "
v-if=
"shop_type == 'ele'&&is_bld"
>
<navigator
url=
"/pages/eleProduct/eleProduct?edit=1"
>
...
...
@@ -390,8 +389,10 @@
});
}
getApp
().
hgServiceFun
()
if
(
uni
.
getSystemInfoSync
().
platform
!=
'
ios
'
){
getApp
().
hgServiceFun
();
}
//#endif
},
...
...
@@ -413,22 +414,36 @@
})
this
.
storeIndexfun
();
if
(
uni
.
getSystemInfoSync
().
platform
!=
'
ios
'
)
{
getApp
().
getnewsRemind
().
then
((
res
)
=>
{
console
.
log
(
res
)
if
(
res
)
{
if
(
this
.
$store
.
state
.
Timer
==
''
)
{
let
Timer
=
setInterval
(()
=>
{
getApp
().
getnewsRemind
(
2
);
console
.
log
(
'
这里
'
);
},
5000
);
this
.
$store
.
commit
(
'
Timer
'
,
Timer
);
}
console
.
log
(
'
11111
'
)
getApp
().
getnewsRemind
().
then
((
res
)
=>
{
if
(
res
)
{
if
(
this
.
$store
.
state
.
Timer
==
''
)
{
let
Timer
=
setInterval
(()
=>
{
getApp
().
getIosLocation
(
2
);
},
5000
);
this
.
$store
.
commit
(
'
Timer
'
,
Timer
);
}
else
{
console
.
log
(
'
2222222222222222
'
)
}
})
}
}
})
// getApp().getnewsRemind().then((res) => {
// if (res) {
// if (this.$store.state.Timer == '') {
// let Timer = setInterval(() => {
// getApp().getnewsRemind(2);
// }, 5000);
// this.$store.commit('Timer', Timer);
// }else{
// console.log('2222222222222222')
// }
// }
// })
},
methods
:
{
saoma
(
e
)
{
...
...
pages/login/login.vue
View file @
b76c3e12
...
...
@@ -137,7 +137,9 @@
if
(
password
!=
""
&&
username
!=
""
&&
(
password
!=
undefined
&&
username
!=
undefined
)){
//自动登录
this
.
login
();
}
}
getApp
().
getIosLocation
();
//实时获取位置
},
onLoad
()
{
...
...
utils/permission.js
0 → 100644
View file @
b76c3e12
/**
* 本模块封装了Android、iOS的应用权限判断、打开应用权限设置界面、以及位置系统服务是否开启
*/
var
isIos
// #ifdef APP-PLUS
isIos
=
(
plus
.
os
.
name
==
"
iOS
"
)
// #endif
// 判断推送权限是否开启
function
judgeIosPermissionPush
()
{
var
result
=
false
;
var
UIApplication
=
plus
.
ios
.
import
(
"
UIApplication
"
);
var
app
=
UIApplication
.
sharedApplication
();
var
enabledTypes
=
0
;
if
(
app
.
currentUserNotificationSettings
)
{
var
settings
=
app
.
currentUserNotificationSettings
();
enabledTypes
=
settings
.
plusGetAttribute
(
"
types
"
);
console
.
log
(
"
enabledTypes1:
"
+
enabledTypes
);
if
(
enabledTypes
==
0
)
{
console
.
log
(
"
推送权限没有开启
"
);
}
else
{
result
=
true
;
console
.
log
(
"
已经开启推送功能!
"
)
}
plus
.
ios
.
deleteObject
(
settings
);
}
else
{
enabledTypes
=
app
.
enabledRemoteNotificationTypes
();
if
(
enabledTypes
==
0
)
{
console
.
log
(
"
推送权限没有开启!
"
);
}
else
{
result
=
true
;
console
.
log
(
"
已经开启推送功能!
"
)
}
console
.
log
(
"
enabledTypes2:
"
+
enabledTypes
);
}
plus
.
ios
.
deleteObject
(
app
);
plus
.
ios
.
deleteObject
(
UIApplication
);
return
result
;
}
// 判断定位权限是否开启
function
judgeIosPermissionLocation
()
{
var
result
=
false
;
var
cllocationManger
=
plus
.
ios
.
import
(
"
CLLocationManager
"
);
var
status
=
cllocationManger
.
authorizationStatus
();
result
=
(
status
!=
2
)
console
.
log
(
"
定位权限开启:
"
+
result
);
// 以下代码判断了手机设备的定位是否关闭,推荐另行使用方法 checkSystemEnableLocation
/* var enable = cllocationManger.locationServicesEnabled();
var status = cllocationManger.authorizationStatus();
console.log("enable:" + enable);
console.log("status:" + status);
if (enable && status != 2) {
result = true;
console.log("手机定位服务已开启且已授予定位权限");
} else {
console.log("手机系统的定位没有打开或未给予定位权限");
} */
plus
.
ios
.
deleteObject
(
cllocationManger
);
return
result
;
}
// 判断麦克风权限是否开启
function
judgeIosPermissionRecord
()
{
var
result
=
false
;
var
avaudiosession
=
plus
.
ios
.
import
(
"
AVAudioSession
"
);
var
avaudio
=
avaudiosession
.
sharedInstance
();
var
permissionStatus
=
avaudio
.
recordPermission
();
console
.
log
(
"
permissionStatus:
"
+
permissionStatus
);
if
(
permissionStatus
==
1684369017
||
permissionStatus
==
1970168948
)
{
console
.
log
(
"
麦克风权限没有开启
"
);
}
else
{
result
=
true
;
console
.
log
(
"
麦克风权限已经开启
"
);
}
plus
.
ios
.
deleteObject
(
avaudiosession
);
return
result
;
}
// 判断相机权限是否开启
function
judgeIosPermissionCamera
()
{
var
result
=
false
;
var
AVCaptureDevice
=
plus
.
ios
.
import
(
"
AVCaptureDevice
"
);
var
authStatus
=
AVCaptureDevice
.
authorizationStatusForMediaType
(
'
vide
'
);
console
.
log
(
"
authStatus:
"
+
authStatus
);
if
(
authStatus
==
3
)
{
result
=
true
;
console
.
log
(
"
相机权限已经开启
"
);
}
else
{
console
.
log
(
"
相机权限没有开启
"
);
}
plus
.
ios
.
deleteObject
(
AVCaptureDevice
);
return
result
;
}
// 判断相册权限是否开启
function
judgeIosPermissionPhotoLibrary
()
{
var
result
=
false
;
var
PHPhotoLibrary
=
plus
.
ios
.
import
(
"
PHPhotoLibrary
"
);
var
authStatus
=
PHPhotoLibrary
.
authorizationStatus
();
console
.
log
(
"
authStatus:
"
+
authStatus
);
if
(
authStatus
==
3
)
{
result
=
true
;
console
.
log
(
"
相册权限已经开启
"
);
}
else
{
console
.
log
(
"
相册权限没有开启
"
);
}
plus
.
ios
.
deleteObject
(
PHPhotoLibrary
);
return
result
;
}
// 判断通讯录权限是否开启
function
judgeIosPermissionContact
()
{
var
result
=
false
;
var
CNContactStore
=
plus
.
ios
.
import
(
"
CNContactStore
"
);
var
cnAuthStatus
=
CNContactStore
.
authorizationStatusForEntityType
(
0
);
if
(
cnAuthStatus
==
3
)
{
result
=
true
;
console
.
log
(
"
通讯录权限已经开启
"
);
}
else
{
console
.
log
(
"
通讯录权限没有开启
"
);
}
plus
.
ios
.
deleteObject
(
CNContactStore
);
return
result
;
}
// 判断日历权限是否开启
function
judgeIosPermissionCalendar
()
{
var
result
=
false
;
var
EKEventStore
=
plus
.
ios
.
import
(
"
EKEventStore
"
);
var
ekAuthStatus
=
EKEventStore
.
authorizationStatusForEntityType
(
0
);
if
(
ekAuthStatus
==
3
)
{
result
=
true
;
console
.
log
(
"
日历权限已经开启
"
);
}
else
{
console
.
log
(
"
日历权限没有开启
"
);
}
plus
.
ios
.
deleteObject
(
EKEventStore
);
return
result
;
}
// 判断备忘录权限是否开启
function
judgeIosPermissionMemo
()
{
var
result
=
false
;
var
EKEventStore
=
plus
.
ios
.
import
(
"
EKEventStore
"
);
var
ekAuthStatus
=
EKEventStore
.
authorizationStatusForEntityType
(
1
);
if
(
ekAuthStatus
==
3
)
{
result
=
true
;
console
.
log
(
"
备忘录权限已经开启
"
);
}
else
{
console
.
log
(
"
备忘录权限没有开启
"
);
}
plus
.
ios
.
deleteObject
(
EKEventStore
);
return
result
;
}
// Android权限查询
function
requestAndroidPermission
(
permissionID
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
plus
.
android
.
requestPermissions
(
[
permissionID
],
// 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装
function
(
resultObj
)
{
var
result
=
0
;
for
(
var
i
=
0
;
i
<
resultObj
.
granted
.
length
;
i
++
)
{
var
grantedPermission
=
resultObj
.
granted
[
i
];
console
.
log
(
'
已获取的权限:
'
+
grantedPermission
);
result
=
1
}
for
(
var
i
=
0
;
i
<
resultObj
.
deniedPresent
.
length
;
i
++
)
{
var
deniedPresentPermission
=
resultObj
.
deniedPresent
[
i
];
console
.
log
(
'
拒绝本次申请的权限:
'
+
deniedPresentPermission
);
result
=
0
}
for
(
var
i
=
0
;
i
<
resultObj
.
deniedAlways
.
length
;
i
++
)
{
var
deniedAlwaysPermission
=
resultObj
.
deniedAlways
[
i
];
console
.
log
(
'
永久拒绝申请的权限:
'
+
deniedAlwaysPermission
);
result
=
-
1
}
resolve
(
result
);
// 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
// if (result != 1) {
// gotoAppPermissionSetting()
// }
},
function
(
error
)
{
console
.
log
(
'
申请权限错误:
'
+
error
.
code
+
"
=
"
+
error
.
message
);
resolve
({
code
:
error
.
code
,
message
:
error
.
message
});
}
);
});
}
// 使用一个方法,根据参数判断权限
function
judgeIosPermission
(
permissionID
)
{
if
(
permissionID
==
"
location
"
)
{
return
judgeIosPermissionLocation
()
}
else
if
(
permissionID
==
"
camera
"
)
{
return
judgeIosPermissionCamera
()
}
else
if
(
permissionID
==
"
photoLibrary
"
)
{
return
judgeIosPermissionPhotoLibrary
()
}
else
if
(
permissionID
==
"
record
"
)
{
return
judgeIosPermissionRecord
()
}
else
if
(
permissionID
==
"
push
"
)
{
return
judgeIosPermissionPush
()
}
else
if
(
permissionID
==
"
contact
"
)
{
return
judgeIosPermissionContact
()
}
else
if
(
permissionID
==
"
calendar
"
)
{
return
judgeIosPermissionCalendar
()
}
else
if
(
permissionID
==
"
memo
"
)
{
return
judgeIosPermissionMemo
()
}
return
false
;
}
// 跳转到**应用**的权限页面
function
gotoAppPermissionSetting
()
{
if
(
isIos
)
{
var
UIApplication
=
plus
.
ios
.
import
(
"
UIApplication
"
);
var
application2
=
UIApplication
.
sharedApplication
();
var
NSURL2
=
plus
.
ios
.
import
(
"
NSURL
"
);
// var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
var
setting2
=
NSURL2
.
URLWithString
(
"
app-settings:
"
);
application2
.
openURL
(
setting2
);
plus
.
ios
.
deleteObject
(
setting2
);
plus
.
ios
.
deleteObject
(
NSURL2
);
plus
.
ios
.
deleteObject
(
application2
);
}
else
{
// console.log(plus.device.vendor);
var
Intent
=
plus
.
android
.
importClass
(
"
android.content.Intent
"
);
var
Settings
=
plus
.
android
.
importClass
(
"
android.provider.Settings
"
);
var
Uri
=
plus
.
android
.
importClass
(
"
android.net.Uri
"
);
var
mainActivity
=
plus
.
android
.
runtimeMainActivity
();
var
intent
=
new
Intent
();
intent
.
setAction
(
Settings
.
ACTION_APPLICATION_DETAILS_SETTINGS
);
var
uri
=
Uri
.
fromParts
(
"
package
"
,
mainActivity
.
getPackageName
(),
null
);
intent
.
setData
(
uri
);
mainActivity
.
startActivity
(
intent
);
}
}
// 检查系统的设备服务是否开启
// var checkSystemEnableLocation = async function () {
function
checkSystemEnableLocation
()
{
if
(
isIos
)
{
var
result
=
false
;
var
cllocationManger
=
plus
.
ios
.
import
(
"
CLLocationManager
"
);
var
result
=
cllocationManger
.
locationServicesEnabled
();
console
.
log
(
"
系统定位开启:
"
+
result
);
plus
.
ios
.
deleteObject
(
cllocationManger
);
return
result
;
}
else
{
var
context
=
plus
.
android
.
importClass
(
"
android.content.Context
"
);
var
locationManager
=
plus
.
android
.
importClass
(
"
android.location.LocationManager
"
);
var
main
=
plus
.
android
.
runtimeMainActivity
();
var
mainSvr
=
main
.
getSystemService
(
context
.
LOCATION_SERVICE
);
var
result
=
mainSvr
.
isProviderEnabled
(
locationManager
.
GPS_PROVIDER
);
console
.
log
(
"
系统定位开启:
"
+
result
);
return
result
}
}
module
.
exports
=
{
judgeIosPermission
:
judgeIosPermission
,
requestAndroidPermission
:
requestAndroidPermission
,
checkSystemEnableLocation
:
checkSystemEnableLocation
,
gotoAppPermissionSetting
:
gotoAppPermissionSetting
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment