Commit ef648a3e by 赵艳波

tj

parent 933970d7
......@@ -54,17 +54,18 @@ http.interceptors.response.use(
overlay: true,
onClose: () => {
console.log('WebViewJavascriptBridge');
try {
window.WebViewJavascriptBridge.callHandler(
"closeWebView",
null,
function (response) {
console.log("closeWebView 来自 ios/android的回传数据:", response);
}
);
} catch (err) {
console.log("closeWebView is error");
}
this.$bridge.closeWebView();
// try {
// window.WebViewJavascriptBridge.callHandler(
// "closeWebView",
// null,
// function (response) {
// console.log("closeWebView 来自 ios/android的回传数据:", response);
// }
// );
// } catch (err) {
// console.log("closeWebView is error");
// }
}
})
//return info;
......
function initJsBridge(readyCallback) {
// function initJsBridge(readyCallback) {
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
// var u = navigator.userAgent;
// var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
// var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
// console.log('initJsBridge');
// // console.log('initJsBridge');
// 注册jsbridge
function connectWebViewJavascriptBridge(callback) {
// console.log('connectWebViewJavascriptBridge');
if (isAndroid) {
if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge)
} else {
document.addEventListener(
'WebViewJavascriptBridgeReady'
, function () {
callback(WebViewJavascriptBridge)
},
false
);
}
return;
}
// // 注册jsbridge
// function connectWebViewJavascriptBridge(callback) {
// // console.log('connectWebViewJavascriptBridge');
// 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 (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)
// }
// }
// 调用注册方法 原生调用JS
connectWebViewJavascriptBridge(function (bridge) {
if (isAndroid) {
bridge.init('getbarheight', function (data, responseCallback) {
responseCallback('received from native data:', data);
});
}
// // 调用注册方法 原生调用JS
// connectWebViewJavascriptBridge(function (bridge) {
// if (isAndroid) {
// bridge.init('getbarheight', function (data, responseCallback) {
// responseCallback('received from native data:', data);
// });
// }
readyCallback();
});
}
// readyCallback();
// });
// }
export default initJsBridge;
\ No newline at end of file
// export default initJsBridge;
\ No newline at end of file
......@@ -8,16 +8,15 @@ class Bridge {
/**
* 设置齐刘海头部颜色
*
* @param {"barColor": "#0978e7"} data 请求数据
* @param {Object=} args 请求数据
* @param {String} args.barColor 栏颜色 #0978e7
*/
setBarColor(data = {}) {
setBarColor(args = {}) {
return new Promise((resolve, reject) => {
try {
jsBridge.callHandler('setBarColor', data, function (response) {
console.log('44444=>', response);
jsBridge.callHandler('setBarColor', args, function (response) {
resolve(response)
});
resolve(null);
} catch (err) {
reject(err)
}
......@@ -27,14 +26,53 @@ class Bridge {
/**
* 获取头部栏高度
*
* @param {Object} data
* @param {Object=} args 请求参数
*/
getBarHeight(data = {}) {
getBarHeight(args = {}) {
return new Promise((resolve, reject) => {
try {
jsBridge.callHandler("getBarHeight", data, function (response) {
console.log("高度=>", response);
jsBridge.callHandler("getBarHeight", args, function (response) {
resolve(response);
});
} catch (err) {
reject(err);
}
})
}
/**
* 设置页面导肮栏状态
*
* @param {Object} args 请求参数
* @param {Boolean} args.isShowClose 是否显示关闭
* @param {Boolean} args.isShowBack 是否显示返回
* @param {Boolean} args.isCloseLeft 是否关闭左侧
* @param {Boolean} args.isShowTitle 是否显示标题
* @param {Boolean} args.isShowNav 是否显示导航栏
* @param {Boolean} args.isCloseWebView 是否关闭WebView
*/
setPageNavState(args = {}) {
return new Promise((resolve, reject) => {
try {
jsBridge.callHandler("setPageNavState", args, function (response) {
resolve(response);
});
} catch (err) {
reject(err);
}
})
}
/**
* 关闭WebView
*
* @param {Object=} args 请求对象
*/
closeWebView(args = {}) {
return new Promise((resolve, reject) => {
try {
jsBridge.callHandler("closeWebView", args, function (response) {
resolve(response);
});
} catch (err) {
......
......@@ -6,7 +6,7 @@ import 'lib-flexible/flexible'
import './assets/css/index.css'
import './utils/filter'
import FastClick from 'fastclick'
import initJsBridge from "./assets/js/JsBridge";
// import initJsBridge from "./assets/js/JsBridge";
import bridge from "./assets/js/bridge/birdge";
Vue.config.productionTip = false
......@@ -30,7 +30,15 @@ FastClick.prototype.focus = function (targetElement) {
}
};
Vue.prototype.setPageNavState = function (params = { headerColor: false, isShowClose: false, isShowBack: false, isCloseLeft: false, isShowTitle: false, isShowNav: false, isCloseWebView: false }) {
Vue.prototype.setPageNavState = function () {
bridge.setPageNavState({
isShowClose: false,
isShowBack: false,
isCloseLeft: false,
isShowTitle: false,
isShowNav: false,
isCloseWebView: false
})
// try {
// initJsBridge((params) => {
// window.WebViewJavascriptBridge.callHandler(
......
......@@ -159,7 +159,7 @@ import { Icon, Loading } from "vant";
import { TabHeader } from "@/components";
import * as utils from "../../utils/common";
import { mapGetters, mapActions } from "vuex";
import initJsBridge from "../../assets/js/JsBridge";
// import initJsBridge from "../../assets/js/JsBridge";
import dayjs from "dayjs";
export default {
......@@ -468,33 +468,44 @@ export default {
}
},
closeWebView() {
try {
window.WebViewJavascriptBridge.callHandler(
"closeWebView",
null,
function(response) {
console.log("closeWebView 来自 ios/android的回传数据:", response);
}
);
} catch (err) {
console.log("closeWebView is error");
}
this.$bridge.closeWebView();
// try {
// window.WebViewJavascriptBridge.callHandler(
// "closeWebView",
// null,
// function(response) {
// console.log("closeWebView 来自 ios/android的回传数据:", response);
// }
// );
// } catch (err) {
// console.log("closeWebView is error");
// }
},
setPageNavStateShow() {
window.WebViewJavascriptBridge.callHandler(
"setPageNavState",
{
this.$bridge
.setPageNavStateShow({
isShowClose: true,
isShowBack: true,
isCloseLeft: true,
isShowTitle: true,
isShowNav: true,
isCloseWebView: true
},
function(response) {
console.log("setPageNavState来自 ios/android的回传数据: ", response);
}
);
})
.then(res => {});
// window.WebViewJavascriptBridge.callHandler(
// "setPageNavState",
// {
// isShowClose: true,
// isShowBack: true,
// isCloseLeft: true,
// isShowTitle: true,
// isShowNav: true,
// isCloseWebView: true
// },
// function(response) {
// console.log("setPageNavState来自 ios/android的回传数据: ", response);
// }
// );
},
navLeftArrowClick() {
this.closeWebView();
......@@ -513,10 +524,6 @@ export default {
this.setBarHeightLowBee();
this.globalNavLeftArrowClick(this.navLeftArrowClick);
await this.loadPeriodData();
this.$bridge.getBarHeight().then(res => {
console.log("结果=>", res);
});
},
async created() {
this.payUrl = await this.loadPayUrl();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment