O editor recebeu a tarefa de liderança para escrever uma página de atividade móvel h5, clicar no conteúdo da página para recuperar ios e Android e desenvolver a função de compartilhamento (incluindo WeChat, WeChat Moments, QQ, QQ Space, etc.) que o usuário não registrou Você só pode compartilhar após o login. Após o compartilhamento ser bem-sucedido, você pode iniciar uma solicitação para fornecer uma função de cupom A seguir está a experiência adquirida, apenas para referência.
É recomendado não usar ShareSDK
Carregue informações úteis diretamente: não há necessidade de fazer referência a outras bibliotecas
var u = navigator.userAgent;//Determine o tipo de telefone celular//---------------------------------- ----------- ---Telefone Android--------------------------------- ------------------ ----------// if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //Android var callbackButton = document.getElementById ('btnImg'); //Bloqueie a função original if (userId == null) { //Veja se você está logado, se não estiver logado WebViewJavascriptBridge.callHandler('loginAction', function (response) {})//Aqui está a página h5 para chame o método de login do Android} else {//Já logado WebViewJavascriptBridge.callHandler('shareAction', { //A página h5 chama o método Android para compartilhar os parâmetros passados para o Android, conteúdo: Você trata, eu pago a conta, convido os amigos para ir (diversão) e agendar uma carona juntos, // Imagem de texto compartilhadaLinking: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // Título do URL da imagem compartilhada: Fun Hail - esperando por você na estação Xinghai Square, // Título compartilhado pictureUrl: http://agent.qyueche.com/sup/ShareSdk/xing.html, //Plataforma de link de URL compartilhada: [2, 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } , function (response) {}) } } function connectWebViewJavascriptBridge(callback) {//Isso ocorre após o compartilhamento bem-sucedido if (window.WebViewJavascriptBridge) { callback(WebViewJavascriptBridge) } else { document.addEventListener( 'WebViewJavascriptBridgeReady', function() { callback(WebViewJavascriptBridge) }, false } } connectWebViewJavascriptBridge(function(bridge) { bridge.init(function(message, responseCallback) { }) ;bridge.registerHandler('shareComplete', function (dados, respostaCallback) { //método de retorno de chamada do ios, // alert(data) if (data == 1) { //Se o compartilhamento for bem-sucedido $.ajax({ //Solicita interface para receber cupons type: 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, dados: {}, dataType: json, sucesso: function (data) { //Receba swal(dados) com sucesso .message); }, erro: função (XMLHttpRequest, textStatus, errorThrown) { //Falha ao receber swal('Falha ao receber!'); else { //Falha ao compartilhar swal('Falha ao compartilhar!'); , responseCallback) { //método de login do ios, userId = data; }) }) } else if (u.indexOf('iPhone') > -1) { //------------- --- -----------------------Telefone Apple---------------------- ----------------------------------// // swal (iPhone); função setupWebViewJavascriptBridge (retorno de chamada) { if (window.WebViewJavascriptBridge) { retornar retorno de chamada (WebViewJavascriptBridge } if (window.WVJBCallbacks) { retornar janela.WVJBCallbacks.push (retorno de chamada) window.WVJBCallbacks = [retorno de chamada] ; var WVJBIframe = document.createElement('iframe'); WVJBIframe.style.display = 'none' WVJBIframe.src = 'https://__bridge_loaded__'; setupWebViewJavascriptBridge(função (ponte) { bridge.registerHandler('shareComplete', function (data, responseCallback) { //método de retorno de chamada do ios, if (data.code == 1) { //Se o compartilhamento for bem-sucedido $.ajax({ //Solicita interface para receber tipo de cupons : obter, 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, dados: {}, dataType: json, sucesso: função (dados) { //Recebido com sucesso swal(data.message }), erro: função (XMLHttpRequest, textStatus, errorThrown) { //Falha ao receber swal('Falha ao receber!'); else { //Falha ao compartilhar swal('Falha ao compartilhar!'); ('loginComplete', function (data, responseCallback) { //método de login ios, userId = data.userId; }) var callbackButton = document.getElementById('btnImg'); //Obter o nó callbackButton.onclick = function (e) { //Evento de clique e.preventDefault(); se você estiver logado bridge.callHandler('loginAction', function (response) {}) } else { bridge.callHandler('shareAction', { //Conteúdo do parâmetro passado para ios: Você trata, eu pago a conta, convido os amigos para ir (diversão) e agendar uma carona juntos, // Imagem de texto compartilhadaLinking: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // Título do URL da imagem compartilhada: Fun Hail - esperando por você na estação Xinghai Square, // Título compartilhado pictureUrl: http://agent.qyueche.com/sup/ShareSdk/xing.html, //Plataforma de link de URL compartilhada: [2, 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } , função (resposta) {}) } } }) }
Em geral, as semelhanças de código entre Android e iOS são muito semelhantes, mas o posicionamento do código é diferente. Deve-se observar que callHandler é o método para chamar páginas em iOS ou Android, e RegisterHandler é o método para chamar páginas em iOS e Android. .
O nome do método da posição da caixa vermelha na imagem é personalizado pelo desenvolvedor da página h5 e pela equipe ios e Android.
O texto acima é todo o conteúdo deste artigo. Espero que seja útil para o estudo de todos. Também espero que todos apoiem a Rede VeVb Wulin.