核心提示:页面客户端交互:先介绍一下得力帮手:fiddler4,使用fiddler做代理调试手机页面,设置方法:建议连接同一个局域网,即同一个wifi。一、查看pc端无线网络连接ip, 无线网络连接,无线网络连...
页面客户端交互:先介绍一下得力帮手:fiddler4,使用fiddler做代理调试手机页面,设置方法:建议连接同一个局域网,即同一个wifi。
一、查看pc端无线网络连接ip, 无线网络连接,无线网络连接,ipv4地址,这里是192.168.*.*
二、设置fildder4
三、设置手机网络代理,
此时fiddler即可监控手机网络请求!
2、利用WebViewJavascriptBridge实现网页也客户端交互,网页引用js即可:
此文件必须放在最顶层页面,如页面包含有iframe,此js文件必须放在iframe所在页面
// 安卓端 function connectWebViewjavascriptBridge(callback) { if (window.WebViewjavascriptBridge) { callback(WebViewjavascriptBridge) } else { document.addEventListener( 'WebViewjavascriptBridgeReady' , function() { callback(WebViewjavascriptBridge) }, false ); } } // iOS端 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 = 'wvjbscheme://__BRIDGE_LOADED__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0) } var u = navigator.userAgent; if (u.indexOf('Android') > -1 || u.indexOf('Adr') > -1) { connectWebViewjavascriptBridge(function(bridge) { //document.getElementById("show").innerHTML = "android WebViewjavascriptBridge inited" }) } else { setupWebViewjavascriptBridge(function(bridge) { //document.getElementById("show").innerHTML = "iOS WebViewjavascriptBridge inited" }) } 之后即可使用以下方法调用客户端方法: window.WebViewjavascriptBridge.callHandler( 'openTakePhoto' , '9999999' , function(responseData) { document.getElementById("content").contentWindow.photoHandler(responseData); } ); img base64 to blob function dataURLtoBlob(dataurl) { var arr = dataurl.split(','); mime = arr[0].match(/:(.*?);/)[1]; bstr = atob(dataurl.substr(22).replace(/\s/g, '')); n = bstr.length; u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); } dataurl 包含:data:image/png;base64, 由于是带文件上传用到:new FormData(); function sentComment(){ var url = $("#albumItemCommentURL").val(); var params = {"mediaType":3}; var data = new FormData(); var audioBase64Data = $("#audioBase64Data").attr("src"); if(audioBase64Data){ var blobBin = dataURLtoBlob(audioBase64Data); var fileType = blobBin.type.split("/")[1]; params.fileType = fileType; data.append('file',blobBin); } var dataWithType = new Blob([JSON.stringify(params)],{ type: "application/json" }); data.append("data",dataWithType); $.ajax({ url : url, type : 'post', processData :false, contentType: false, data : data, dataType : 'json', success : function(data){ var obj = eval(data); if(obj.responseCode == '0'){ } }, error: function (jqXHR, textStatus, errorThrown) { alert(textStatus+"---"+errorThrown); } }); }