편집자는 h5 모바일 활동 페이지를 작성하고, 페이지 콘텐츠를 클릭하여 iOS 및 Android를 검색하고, 사용자가 기록하지 않은 공유 기능(WeChat, WeChat Moments, QQ, QQ Space 등 포함)을 개발하라는 리더십 작업을 받았습니다. 로그인 후에만 공유할 수 있습니다. 공유가 성공한 후에는 쿠폰 기능을 요청하기 시작할 수 있습니다. 다음은 참고용으로만 얻은 경험치입니다.
ShareSDK를 사용하지 않는 것이 좋습니다
유용한 정보를 직접 업로드: 다른 라이브러리를 참조할 필요가 없습니다.
var u = navigator.userAgent;//휴대폰 유형 확인//------------------------------------------------ ----------- ---안드로이드 휴대폰--------- -------------- ----------// if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //Android var callbackButton = document.getElementById ('btnImg'); //노드 가져오기 callbackButton.onclick = function (e) { e.preventDefault(); //원래 함수 차단 if (userId == null) { //로그인했는지, 로그인하지 않았는지 확인 WebViewJavascriptBridge.callHandler('loginAction', function (response) {})//다음은 h5 페이지입니다. call the Android login method} else {//이미 WebViewJavascriptBridge.callHandler('shareAction', { //h5 페이지는 Android 메소드를 호출하여 android에 전달된 매개변수를 공유합니다. 당신은 대접하고, 나는 청구서를 지불하고, 친구들을 초대하여 (재미있게) 함께 차를 예약하세요. // 공유 텍스트 사진링크: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // 공유 사진 URL 제목: Fun Hail - Xinghai Square Station에서 기다리고 있습니다, // 공유 제목 pictureUrl: http://agent.qyueche.com/sup/ShareSdk/xing.html, //공유 URL 링크 플랫폼: [2, 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } , function (response) {}) } } function connectWebViewJavascriptBridge(callback) {//공유 성공 후의 상태입니다. 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 (data, responseCallback) { //ios 콜백 메소드, // Alert(data) if (data == 1) { //공유가 성공한 경우 $.ajax({ //쿠폰을 받기 위한 인터페이스 요청 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, data: {}, dataType: json, Success: function (data) { //성공적으로 수신 swal(data .message) }, 오류: 함수(XMLHttpRequest, textStatus, errorThrown) { //swal 수신 실패('수신 실패!'); } }) } else { //swal 공유 실패('공유 실패!') } }) bridge.registerHandler('loginComplete', function (data , responseCallback) { //ios 로그인 방법, userId = data; }) }) } else if (u.indexOf('iPhone') > -1) { //------------- --- ----------애플폰--------- ---------------------// // swal(iPhone); 함수 setupWebViewJavascriptBridge(콜백) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback) } window.WVJBCallbacks; ; 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(함수(브리지) { bridge.registerHandler('shareComplete', function (data, responseCallback) { //ios 콜백 메소드, if (data.code == 1) { //공유가 성공한 경우 $.ajax({ //쿠폰을 받기 위한 인터페이스 요청 유형 : 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, 데이터: {}, dataType: json, 성공: 함수(데이터) { //swal(data.message)을 성공적으로 수신했습니다. }, 오류: 함수 (XMLHttpRequest, textStatus, errorThrown) { //swal('수신 실패!') } }) } else { //공유 실패 swal('공유 실패!') } }) ('loginComplete' , 함수 (data, responseCallback) { //ios 로그인 방법, userId = data.userId; }) var callbackButton = document.getElementById('btnImg'); //노드 가져오기 callbackButton.onclick = function (e) { //이벤트 클릭 e.preventDefault(); //원래 함수 방지 if (userId == null) { //참조 bridge.callHandler('loginAction', function (response) {}) } else { bridge.callHandler('shareAction', { //ios에 전달된 매개변수 내용: 당신은 대접하고, 나는 청구서를 지불하고, 친구들을 초대하여 (재미있게) 함께 차를 예약하세요. // 공유 텍스트 사진링크: http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F% E5% 9B%BE.jpg, // 공유 사진 URL 제목: Fun Hail - Xinghai Square Station에서 기다리고 있습니다, // 공유 제목 pictureUrl: http://agent.qyueche.com/sup/ShareSdk/xing.html, //공유 URL 링크 플랫폼: [2, 3] //1 Sina Weibo 2 WeChat Friends 3 WeChat Moments 4 QQ Friends 5 QQ Space 6 SMS } , 함수(응답) {}) } } }) }
일반적으로 Android와 iOS의 코드 유사점은 매우 유사하지만 코드 배치가 다릅니다. callHandler는 iOS 또는 Android에서 페이지를 호출하는 메소드이고, RegisterHandler는 iOS 및 Android에서 페이지를 호출하는 메소드입니다. .
사진 속 빨간박스 위치의 메소드명은 h5 페이지 개발자와 ios, android 담당자가 커스터마이징한 것입니다.
위의 내용은 이 기사의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 또한 모든 분들이 VeVb Wulin Network를 지지해 주시길 바랍니다.