Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
X
XiTianSenMall
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
leiqingsong
XiTianSenMall
Commits
b122638b
Commit
b122638b
authored
Mar 06, 2021
by
leiqingsong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加公共路径
parent
db7069e2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
459 additions
and
320 deletions
+459
-320
webviewJavaScriptBridge.js
H5/public/vendors/webviewJavaScriptBridge.js
+134
-0
wallet.js
H5/src/api/wallet.js
+26
-26
bridge.js
H5/src/utils/bridge.js
+38
-39
request.js
H5/src/utils/request.js
+2
-3
customer-service.vue
H5/src/views/customer-service.vue
+54
-60
register.vue
H5/src/views/register.vue
+204
-192
vue.config.js
H5/vue.config.js
+1
-0
No files found.
H5/public/vendors/webviewJavaScriptBridge.js
0 → 100644
View file @
b122638b
//notation: js file can only use this kind of comments
//since comments will cause error when use in webview.loadurl,
//comments will be remove by java use regexp
(
function
()
{
if
(
window
.
WebViewJavascriptBridge
)
{
return
;
}
var
receiveMessageQueue
=
[];
var
messageHandlers
=
{};
var
responseCallbacks
=
{};
var
uniqueId
=
1
;
//set default messageHandler 初始化默认的消息线程
function
init
(
messageHandler
)
{
if
(
WebViewJavascriptBridge
.
_messageHandler
)
{
throw
new
Error
(
'WebViewJavascriptBridge.init called twice'
);
}
WebViewJavascriptBridge
.
_messageHandler
=
messageHandler
;
var
receivedMessages
=
receiveMessageQueue
;
receiveMessageQueue
=
null
;
for
(
var
i
=
0
;
i
<
receivedMessages
.
length
;
i
++
)
{
_dispatchMessageFromNative
(
receivedMessages
[
i
]);
}
}
// 发送
function
send
(
data
,
responseCallback
)
{
_doSend
(
'send'
,
data
,
responseCallback
);
}
// 注册线程 往数组里面添加值
function
registerHandler
(
handlerName
,
handler
)
{
messageHandlers
[
handlerName
]
=
handler
;
}
// 调用线程
function
callHandler
(
handlerName
,
data
,
responseCallback
)
{
_doSend
(
handlerName
,
data
,
responseCallback
);
}
//sendMessage add message, 触发native处理 sendMessage
function
_doSend
(
handlerName
,
message
,
responseCallback
)
{
var
callbackId
;
if
(
typeof
responseCallback
===
'string'
){
callbackId
=
responseCallback
;
}
else
if
(
responseCallback
)
{
callbackId
=
'cb_'
+
(
uniqueId
++
)
+
'_'
+
new
Date
().
getTime
();
responseCallbacks
[
callbackId
]
=
responseCallback
;
}
else
{
callbackId
=
''
;
}
try
{
var
fn
=
eval
(
'window.android.'
+
handlerName
);
}
catch
(
e
)
{
console
.
log
(
e
);
}
if
(
typeof
fn
===
'function'
){
var
responseData
=
fn
.
call
(
this
,
JSON
.
stringify
(
message
),
callbackId
);
if
(
responseData
){
console
.
log
(
'response message: '
+
responseData
);
responseCallback
=
responseCallbacks
[
callbackId
];
if
(
!
responseCallback
)
{
return
;
}
responseCallback
(
responseData
);
delete
responseCallbacks
[
callbackId
];
}
}
}
//提供给native使用,
function
_dispatchMessageFromNative
(
messageJSON
)
{
setTimeout
(
function
()
{
var
message
=
JSON
.
parse
(
messageJSON
);
var
responseCallback
;
//java call finished, now need to call js callback function
if
(
message
.
responseId
)
{
responseCallback
=
responseCallbacks
[
message
.
responseId
];
if
(
!
responseCallback
)
{
return
;
}
responseCallback
(
message
.
responseData
);
delete
responseCallbacks
[
message
.
responseId
];
}
else
{
//直接发送
if
(
message
.
callbackId
)
{
var
callbackResponseId
=
message
.
callbackId
;
responseCallback
=
function
(
responseData
)
{
_doSend
(
'response'
,
responseData
,
callbackResponseId
);
};
}
var
handler
=
WebViewJavascriptBridge
.
_messageHandler
;
if
(
message
.
handlerName
)
{
handler
=
messageHandlers
[
message
.
handlerName
];
}
//查找指定handler
try
{
handler
(
message
.
data
,
responseCallback
);
}
catch
(
exception
)
{
if
(
typeof
console
!=
'undefined'
)
{
console
.
log
(
"WebViewJavascriptBridge: WARNING: javascript handler threw."
,
message
,
exception
);
}
}
}
});
}
//提供给native调用,receiveMessageQueue 在会在页面加载完后赋值为null,所以
function
_handleMessageFromNative
(
messageJSON
)
{
console
.
log
(
'handle message: '
+
messageJSON
);
if
(
receiveMessageQueue
)
{
receiveMessageQueue
.
push
(
messageJSON
);
}
_dispatchMessageFromNative
(
messageJSON
);
}
var
WebViewJavascriptBridge
=
window
.
WebViewJavascriptBridge
=
{
init
:
init
,
send
:
send
,
registerHandler
:
registerHandler
,
callHandler
:
callHandler
,
_handleMessageFromNative
:
_handleMessageFromNative
};
var
doc
=
document
;
var
readyEvent
=
doc
.
createEvent
(
'Events'
);
readyEvent
.
initEvent
(
'WebViewJavascriptBridgeReady'
);
readyEvent
.
bridge
=
WebViewJavascriptBridge
;
doc
.
dispatchEvent
(
readyEvent
);
})();
H5/src/api/wallet.js
View file @
b122638b
...
...
@@ -2,14 +2,14 @@ import request from "@/utils/request";
/**
* 获取用户钱包
* @param {*} params userId
* @param {*} params userId
*/
export
function
getMoneyPackage
(
params
)
{
return
request
({
url
:
"/wallet/getMoneyPackage"
,
method
:
"get"
,
params
})
return
request
({
url
:
"/wallet/getMoneyPackage"
,
method
:
"get"
,
params
});
}
/**
...
...
@@ -17,11 +17,11 @@ export function getMoneyPackage(params) {
* @param {*} params userId
*/
export
function
getWithdrawalAmount
(
params
)
{
return
request
({
url
:
"getWithdrawalAmount"
,
method
:
"get"
,
params
})
return
request
({
url
:
"getWithdrawalAmount"
,
method
:
"get"
,
params
});
}
/**
...
...
@@ -30,11 +30,11 @@ export function getWithdrawalAmount(params) {
* @param {*}yearMonth yyyy-MM-dd
*/
export
function
getWithdrawalRecord
(
params
)
{
return
request
({
url
:
"/wallet/getWithdrawalRecord"
,
method
:
"get"
,
params
})
return
request
({
url
:
"/wallet/getWithdrawalRecord"
,
method
:
"get"
,
params
});
}
/**
...
...
@@ -42,11 +42,11 @@ export function getWithdrawalRecord(params) {
* @param {*} params userId
*/
export
function
queryIncomeDetail
(
params
)
{
return
request
({
url
:
"/wallet/queryIncomeDetail"
,
method
:
"get"
,
params
})
return
request
({
url
:
"/wallet/queryIncomeDetail"
,
method
:
"get"
,
params
});
}
/**
...
...
@@ -55,9 +55,9 @@ export function queryIncomeDetail(params) {
*/
export
function
showIncomeRecord
(
params
)
{
return
request
({
url
:
"/wallet/showIncomeRecord"
,
method
:
"get"
,
params
})
return
request
({
url
:
"/wallet/showIncomeRecord"
,
method
:
"get"
,
params
});
}
H5/src/utils/bridge.js
View file @
b122638b
var
u
=
navigator
.
userAgent
;
var
isAndroid
=
u
.
indexOf
(
'Android'
)
>
-
1
||
u
.
indexOf
(
'Adr'
)
>
-
1
;
//android终端
var
isAndroid
=
u
.
indexOf
(
"Android"
)
>
-
1
||
u
.
indexOf
(
"Adr"
)
>
-
1
;
//android终端
var
isiOS
=
!!
u
.
match
(
/
\(
i
[^
;
]
+;
(
U;
)?
CPU.+Mac OS X/
);
//ios终端
// 注册jsbridge
function
connectWebViewJavascriptBridge
(
callback
)
{
if
(
isAndroid
)
{
if
(
window
.
WebViewJavascriptBridge
)
{
callback
(
WebViewJavascriptBridge
)
}
else
{
document
.
addEventListener
(
'WebViewJavascriptBridgeReady'
,
function
()
{
callback
(
WebViewJavascriptBridge
)
},
false
);
}
return
;
}
if
(
isiOS
)
{
if
(
window
.
WebViewJavascriptBridge
)
{
return
callback
(
WebViewJavascriptBridge
);
}
if
(
window
.
WVJBCallbacks
)
{
return
window
.
WVJBCallbacks
.
push
(
callback
);
}
window
.
WVJBCallbacks
=
[
callback
];
var
WVJBIframe
=
document
.
createElement
(
'iframe'
);
WVJBIframe
.
style
.
display
=
'none'
;
WVJBIframe
.
src
=
'https://__bridge_loaded__'
;
document
.
documentElement
.
appendChild
(
WVJBIframe
);
setTimeout
(
function
()
{
document
.
documentElement
.
removeChild
(
WVJBIframe
)
},
0
)
}
if
(
isAndroid
)
{
if
(
window
.
WebViewJavascriptBridge
)
{
callback
(
WebViewJavascriptBridge
);
}
else
{
document
.
addEventListener
(
"WebViewJavascriptBridgeReady"
,
function
()
{
callback
(
WebViewJavascriptBridge
);
},
false
);
}
return
;
}
if
(
isiOS
)
{
if
(
window
.
WebViewJavascriptBridge
)
{
return
callback
(
WebViewJavascriptBridge
);
}
if
(
window
.
WVJBCallbacks
)
{
return
window
.
WVJBCallbacks
.
push
(
callback
);
}
window
.
WVJBCallbacks
=
[
callback
];
var
WVJBIframe
=
document
.
createElement
(
"iframe"
);
WVJBIframe
.
style
.
display
=
"none"
;
WVJBIframe
.
src
=
"https://__bridge_loaded__"
;
document
.
documentElement
.
appendChild
(
WVJBIframe
);
setTimeout
(
function
()
{
document
.
documentElement
.
removeChild
(
WVJBIframe
);
},
0
);
}
}
// 调用注册方法
connectWebViewJavascriptBridge
(
function
(
bridge
)
{
if
(
isAndroid
)
{
bridge
.
init
(
function
(
message
,
responseCallback
)
{
responseCallback
(
data
);
});
}
});
\ No newline at end of file
connectWebViewJavascriptBridge
(
function
(
bridge
)
{
if
(
isAndroid
)
{
bridge
.
init
(
function
(
message
,
responseCallback
)
{
responseCallback
(
data
);
});
}
});
H5/src/utils/request.js
View file @
b122638b
...
...
@@ -4,14 +4,13 @@ import { Toast } from "vant";
let
loading
=
null
;
const
service
=
axios
.
create
({
baseURL
:
"http://
192.168.204.152
:8997"
,
baseURL
:
"http://
8.131.244.76
:8997"
,
timeout
:
5000
});
service
.
interceptors
.
request
.
use
(
config
=>
{
config
.
headers
[
"Authorization"
]
=
"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJpZFwiOjEsXCJpbnZpdGVDb2RlXCI6XCIxXCIsXCJwYXNzd29yZFwiOlwiMTIzXCIsXCJ1c2VySWRcIjpcIjFcIixcInVzZXJMZXZlbFwiOjR9IiwiaWF0IjoxNjE0MzI3OTY0fQ.f9RPBOMo0BMMbWPnQIhvfLe535as60dk_SZoXMYOT3bHYjoYST-mivTcKC-u4grEpYZMax9RgyuHXCYydZPzQw"
;
config
.
headers
[
"Authorization"
]
=
"b6cd4e221fdc4e46a6825c236c912fa6"
;
if
(
!
config
.
loading
)
{
loading
=
Toast
.
loading
({
forbidClick
:
true
,
...
...
H5/src/views/customer-service.vue
View file @
b122638b
...
...
@@ -10,17 +10,16 @@
<span
class=
"nav-title"
>
专属客服
</span>
</div>
<div
class=
"panel-box"
>
<div
class=
"panel-content"
>
<div
class=
"title"
>
客服二维码
</div>
<img
src=
"@/assets/images/logo.png"
class=
"qrCode"
alt=
""
>
<div
class=
"save-code"
>
<p>
保存二维码
</p>
<p>
打开微信扫一扫添加客服
</p>
</div>
<van-button>
保存
</van-button>
<div
class=
"panel-content"
>
<div
class=
"title"
>
客服二维码
</div>
<img
src=
"@/assets/images/logo.png"
class=
"qrCode"
alt=
""
/>
<div
class=
"save-code"
>
<p>
保存二维码
</p>
<p>
打开微信扫一扫添加客服
</p>
</div>
<van-button>
保存
</van-button>
</div>
</div>
</div>
</
template
>
...
...
@@ -28,9 +27,7 @@
export
default
{
name
:
"customerService"
,
data
()
{
return
{
};
return
{};
},
methods
:
{
handleUrl
(
urlName
)
{
...
...
@@ -70,55 +67,52 @@ $white: #ffffff;
font-size
:
16px
;
}
}
.panel-box
{
height
:
calc
(
100vh
-
86px
);
padding
:
0
15px
;
margin-top
:
15px
;
.panel-content
{
width
:
100%
;
height
:
100%
;
background-color
:
#ffffff
;
box-shadow
:
0px
2px
12px
0px
rgba
(
6
,
0
,
1
,
0
.04
);
border-radius
:
4px
;
padding-top
:
45px
;
box-sizing
:
border-box
;
.title
{
font-size
:
18px
;
font-weight
:
normal
;
font-stretch
:
normal
;
line-height
:
26px
;
letter-spacing
:
0px
;
color
:
#333333
;
text-align
:
center
;
}
.qrCode
{
width
:
128px
;
height
:
130px
;
margin
:
80px
auto
30px
;
display
:
block
;
}
.save-code
{
font-size
:
14px
;
font-weight
:
normal
;
font-stretch
:
normal
;
line-height
:
16px
;
letter-spacing
:
0px
;
color
:
#999999
;
}
.van-button
{
width
:
160px
;
height
:
36px
;
background-color
:
#88c678
;
border-radius
:
4px
;
font-size
:
18px
;
color
:
#ffffff
;
margin
:
85px
auto
0
;
display
:
block
;
}
.panel-box
{
height
:
calc
(
100vh
-
86px
);
padding
:
0
15px
;
margin-top
:
15px
;
.panel-content
{
width
:
100%
;
height
:
100%
;
background-color
:
#ffffff
;
box-shadow
:
0px
2px
12px
0px
rgba
(
6
,
0
,
1
,
0
.04
);
border-radius
:
4px
;
padding-top
:
45px
;
box-sizing
:
border-box
;
.title
{
font-size
:
18px
;
font-weight
:
normal
;
font-stretch
:
normal
;
line-height
:
26px
;
letter-spacing
:
0px
;
color
:
#333333
;
text-align
:
center
;
}
.qrCode
{
width
:
128px
;
height
:
130px
;
margin
:
80px
auto
30px
;
display
:
block
;
}
.save-code
{
font-size
:
14px
;
font-weight
:
normal
;
font-stretch
:
normal
;
line-height
:
16px
;
letter-spacing
:
0px
;
color
:
#999999
;
}
.van-button
{
width
:
160px
;
height
:
36px
;
background-color
:
#88c678
;
border-radius
:
4px
;
font-size
:
18px
;
color
:
#ffffff
;
margin
:
85px
auto
0
;
display
:
block
;
}
}
}
}
</
style
>
H5/src/views/register.vue
View file @
b122638b
This diff is collapsed.
Click to expand it.
H5/vue.config.js
View file @
b122638b
const
name
=
"西田森App"
;
module
.
exports
=
{
publicPath
:
"/font"
,
css
:
{
loaderOptions
:
{
postcss
:
{
...
...
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