国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > HTML5 > 正文

html5調用app分享功能示例(WebViewJavascriptBridge)

2024-09-05 07:22:27
字體:
來源:轉載
供稿:網友

小編接到領導任務,寫h5移動端活動頁面,點擊頁面內容調取ios和Android開發自己寫的分享功能(包括微信、微信朋友圈、QQ、QQ空間等),包括用戶未登錄,讓其登錄后才能分享,分享成功后發起請求給予優惠券功能,下面是所得到的經驗,僅供參考。

建議不要使用ShareSDK

直接上干貨:不用引用其他庫

var u = navigator.userAgent;//判斷手機類型    //---------------------------------------安卓手機-------------------------------------------------------//    if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //安卓機        var callbackButton = document.getElementById('btnImg'); //獲取節點        callbackButton.onclick = function (e) {            e.preventDefault(); //阻止原本作用            if (userId == null) { //看是否登錄,如果沒登錄                WebViewJavascriptBridge.callHandler('loginAction', function (response) {})//這里是h5頁面調取安卓的登錄方法            } else {//已經登陸了                WebViewJavascriptBridge.callHandler('shareAction', { //h5頁面調取安卓的方法,進行分享傳給android的參數,                    "content": "你請客,我買單,呼朋喚友一起去(趣)約車", // 分享的文字                    "pictureLinking": "http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F%E5%9B%BE.jpg", // 分享的圖片Url                    "title": "趣約車-星海廣場站等你", //分享的標題                    "pictureUrl": "http://agent.qyueche.com/sup/ShareSdk/xing.html", //分享的網址鏈接                    "platform": ["2", "3"] //1新浪微博2微信好友3微信朋友圈4QQ好友5QQ空間6短信                }, 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);                        },                        error: function (XMLHttpRequest, textStatus, errorThrown) { //領取失敗                            swal('領取失敗!');                        }                    })                } else { //分享失敗                    swal('分享失敗!');                }            })            bridge.registerHandler('loginComplete', function (data, responseCallback) { //ios登錄的方法,                userId = data;            })        })    } else if (u.indexOf('iPhone') > -1) {         //---------------------------------------蘋果手機-------------------------------------------------------//        // swal("蘋果手機");        function setupWebViewJavascriptBridge(callback) {            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)        }        setupWebViewJavascriptBridge(function (bridge) {            bridge.registerHandler('shareComplete', function (data, responseCallback) { //ios回調的方法,                if (data.code == 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);                        },                        error: function (XMLHttpRequest, textStatus, errorThrown) { //領取失敗                            swal('領取失敗!');                        }                    })                } else { //分享失敗                    swal('分享失敗!');                }            })            bridge.registerHandler('loginComplete', function (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的參數                        "content": "你請客,我買單,呼朋喚友一起去(趣)約車", // 分享的文字                        "pictureLinking": "http://yueche-1254224848.cossh.myqcloud.com/che/%E5%B0%8F%E5%9B%BE.jpg", // 分享的圖片Url                        "title": "趣約車-星海廣場站等你", //分享的標題                        "pictureUrl": "http://agent.qyueche.com/sup/ShareSdk/xing.html", //分享的網址鏈接                        "platform": ["2", "3"] //1新浪微博2微信好友3微信朋友圈4QQ好友5QQ空間6短信                    }, function (response) {})                }            }        })    }

總的來說,安卓和ios的代碼相似度很高,但是代碼碼放的位置不一樣,這點要注意,callHandler是頁面調取ios或安卓的方法,registerHandler是ios和安卓調取頁面的方法

圖片中紅框的位置的方法名由h5頁面開發者與ios和安卓人員商量定制。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平阳县| 曲阜市| 类乌齐县| 文登市| 阿克| 庆城县| 阿拉善盟| 潜山县| 合肥市| 望奎县| 三江| 天长市| 双城市| 固始县| 武定县| 伊宁市| 澳门| 祁门县| 门源| 忻城县| 巴南区| 辰溪县| 老河口市| 平湖市| 广饶县| 循化| 清水县| 青神县| 清水河县| 东兰县| 广昌县| 马龙县| 连山| 镇坪县| 武川县| 丰台区| 唐河县| 阿城市| 宁都县| 澄迈县| 望谟县|