- 我在使用RN webview中打开H5页面中进行调试中,
第一步: 使用rn的方法获取用户信息:
var App = function () {
// this.cmd = cmd
this.userInfo = {}
this.params = {}
this.reqData = {}
}
// 获取iOS信息
App.prototype.IOSUserInfo = function (fn) {
// console.log('这行:::IOSUserInfo')
var obj = {
callBackFunction: 'receiveUserInfo'
}
var str = JSON.stringify(obj)
var that = this
return new Promise(function (resolve, reject) {
window.WebViewBridge && window.WebViewBridge.send('getUserInfo&' + str) // 访问ios用户信息
window.webkit && window.webkit.messageHandlers.getUserInfo.postMessage(null)
window.receiveUserInfo = function (data) {
that.userInfo = JSON.parse(data) // 当前用户的信息
// console.log(' jieshoudaoxinxi:', that.userInfo)
resolve(that.userInfo)
if (fn) {
fn(that.userInfo)
}
}
})
}
// 继承App
unction CheckUserCardState () {
this.params = {}
this.openCardServerUrl = ''
this.serviceUrl = ''
this.userInfo = {}
}
CheckUserCardState.prototype = new App()
CheckUserCardState.prototype.constructor = CheckUserCardState
// 加密请求数据是:
CheckUserCardState.prototype.checkUserState = function (serviceUrl, fn) {
this.fn = fn && fn
this.serviceUrl = serviceUrl
this.init()
}
CheckUserCardState.prototype.init = async function () {
// this.fn = fn && fn
// this.serviceUrl = serviceUrl
this.userInfo = await this.IOSUserInfo()
console.log('init::', this.userInfo)
var result = this.userInfo
console.log('result:::', result)
// resolve(result)
// return result
// await this.encrytReqData()
}
// 在for使用这个init方法:
// 过滤数据,没有用的数据不显示
// 比如当前不支持兴义公交等
// 就不显示出来
// 并且修改图片地址
function filterUserCardData(data) {
var tmp = []
window.upDateUserDate = function (data) {
console.log(':::upDateUserDate', data)
}
data.forEach(function (item, index) {
console.log('item.cloudcardCode:::', item.cloudcardCode)
if (item.cloudcardCode === 'gygj') {
console.log('gygj:::::123:::')
var checkUserStateResult = checkUserCardState.init(item['cloudcardServerurl'] + '/webService/')
console.log('checkUserStateResult:::', checkUserStateResult)
item.mincloudcardImgurl = '../img/card_guiyang.png'
} else if (item.cloudcardCode === 'dygj') {
// checkUserCardState.init(item['cloudcardServerurl'] + '/webService/', upDateUserDate)
item.mincloudcardImgurl = '../img/card_duyun.png'
} else if (item.cloudcardCode === 'xygj') {
item.mincloudcardImgurl = '../img/card_xingyi.png'
} else if (item.cloudcardCode === 'zygj') {
item.mincloudcardImgurl = '../img/card_duyun.png'
}
tmp.push(item)
})
console.log('filterUserCardData::tmp', tmp)
return tmp
}
但是使用vConsove 打印出来的日志:
IOSUserInfo 内部第一行就return一个promise对象试试