El editor recibió la tarea de liderazgo de escribir una página de actividad móvil h5, hacer clic en el contenido de la página para recuperar ios y Android y desarrollar la función de compartir (incluidos WeChat, WeChat Moments, QQ, QQ Space, etc.) que el usuario no ha iniciado sesión. adentro. Solo puede compartir después de iniciar sesión. Una vez que el intercambio se haya realizado correctamente, puede iniciar una solicitud para otorgar una función de cupón. La siguiente es la experiencia adquirida, solo como referencia.
Se recomienda no utilizar ShareSDK
Cargue información útil directamente: no es necesario hacer referencia a otras bibliotecas
var u = navigator.userAgent;//Determinar el tipo de teléfono móvil//---------------------------------- ----------- ---Teléfono Android---------------------------------- -------------- ----------// if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //Android var callbackButton = document.getElementById ('btnImg'); //Obtener el nodo callbackButton.onclick = function (e) { e.preventDefault(); //Bloquear la función original if (userId == null) { //Ver si ha iniciado sesión, si no ha iniciado sesión WebViewJavascriptBridge.callHandler('loginAction', function (response) {})//Aquí está la página h5 para llame al método de inicio de sesión de Android} else {//Ya inició sesión WebViewJavascriptBridge.callHandler('shareAction', { //La página h5 llama al método de Android para compartir los parámetros pasados a Android, contenido: Tú invitas, yo pago la cuenta, invito a amigos a ir (divertido) y reservar un viaje juntos, // Imagen de texto compartidaEnlace: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // Título de la URL de la imagen compartida: Fun Hail - esperándote en la estación de Xinghai Square, // URL de la imagen del título compartido: http://agent.qyueche.com/sup/ShareSdk/xing.html, //Plataforma de enlace URL compartido: [2, 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } , función (respuesta) {}) } } función connectWebViewJavascriptBridge(devolución de llamada) {// Esto es después de compartir correctamente if (window.WebViewJavascriptBridge) { callback(WebViewJavascriptBridge) } else { document.addEventListener( 'WebViewJavascriptBridgeReady', function() { callback(WebViewJavascriptBridge) }, false } } connectWebViewJavascriptBridge(function(bridge) { bridge.init(function(message, ResponseCallback) { }) ; bridge.registerHandler('shareComplete', función (datos, respuestaCallback) { //método de devolución de llamada de ios, // alert(data) if (data == 1) { //Si el intercambio se realiza correctamente $.ajax({ //Solicita interfaz para recibir cupones tipo: get, contentType: application/x-www -form-urlencoded, // url: http://main.qyueche.com/api/coupon/receiveCoupon?userId= + userId + // &takeCouponType=2&couponId=176, url: http://dev.qyueche.cn/api/coupon/receiveCoupon?userId= + userId + &takeCouponType=2&couponId=187, datos: {}, tipo de datos: json, éxito: función (datos) { //Recibir swal(datos con éxito) .mensaje); }, error: función (XMLHttpRequest, textStatus, errorThrown) { // No se pudo recibir swal('¡No se pudo recibir!'); } }) } else { // No se pudo compartir swal('¡No se pudo compartir!'); bridge.registerHandler('loginComplete', function (datos) , respuestaCallback) { //método de inicio de sesión de ios, userId = datos }) }) } else if (u.indexOf('iPhone') > -1) { //------------- --- -----------------------Teléfono Apple---------------------- ----------------------------------// // swal(iPhone); función setupWebViewJavascriptBridge(devolución de llamada) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback } window.WVJBCallbacks = [devolución de llamada] ; 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) } setupWebViewJavascriptBridge(función (puente) { bridge.registerHandler('shareComplete', function (data, ResponseCallback) { //método de devolución de llamada de ios, if (data.code == 1) { //Si el intercambio se realiza correctamente $.ajax({ //Solicitar interfaz para recibir el tipo de cupones : obtener, contentType: aplicación/x-www-form-urlencoded, // url: http://main.qyueche.com/api/coupon/receiveCoupon?userId= + userId + // &takeCouponType=2&couponId=176, url: http://dev.qyueche.cn/api/coupon/receiveCoupon?userId= + userId + &takeCouponType=2&couponId=187, datos: {}, tipo de datos: json, éxito: función (datos) { //Recibido correctamente swal(data.message }, error: función (XMLHttpRequest, textStatus, errorThrown) { //No se pudo recibir swal('¡No se pudo recibir!'); } }) } else { //No se pudo compartir swal('¡No se pudo compartir!'); ('loginComplete', función (datos, respuestaCallback) { //método de inicio de sesión de ios, userId = data.userId; }) var callbackButton = document.getElementById('btnImg'); //Obtener el nodo callbackButton.onclick = function (e) { //Evento de clic e.preventDefault() //Prevenir la función original if (userId == null) { //Ver si ha iniciado sesión bridge.callHandler('loginAction', function (response) {}) } else { bridge.callHandler('shareAction', { //Contenido del parámetro pasado a ios: Tú invitas, yo pago la cuenta, invito a amigos a ir (divertido) y reservar un viaje juntos, // Imagen de texto compartidaEnlace: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // Título de la URL de la imagen compartida: Fun Hail - esperándote en la estación de Xinghai Square, // URL de la imagen del título compartido: http://agent.qyueche.com/sup/ShareSdk/xing.html, //Plataforma de enlace URL compartido: [2, 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } , función (respuesta) {}) } } }) }
En general, las similitudes de código entre Android e iOS son muy similares, pero la ubicación del código es diferente. Cabe señalar que callHandler es el método para llamar a páginas en iOS o Android, y RegisterHandler es el método para llamar a páginas en iOS y Android. .
El nombre del método de la posición del cuadro rojo en la imagen lo personalizan el desarrollador de la página h5 y el personal de ios y Android.
Lo anterior es el contenido completo de este artículo. Espero que sea útil para el estudio de todos. También espero que todos apoyen VeVb Wulin Network.