1. 程式人生 > >【實用隨記】ios跟Android呼叫前端頁面的介面js

【實用隨記】ios跟Android呼叫前端頁面的介面js

因為iosApp androidApp,webApp 都要呼叫這一頁面,所以寫了三套條件判斷,flag是IOSapp給我傳的引數,用來判斷。
//var cityUrl = window.location.href
//currentCity();
//webApp();
//獲取iosAPP傳來的定位城市名稱
    ////問題?如果webAppd做了定位,是不是就不用與iosApp互動傳參了?
function currentCity(cityName){
    $('.city-now').attr('data-city',cityName).html(cityName);   
}

//判斷裝置
var browser={  
    versions:function(){  
        var u = navigator.userAgent, app = navigator.appVersion;  
        return {         //移動終端瀏覽器版本資訊  
             
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端  
            android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android終端或uc瀏覽器  
        };  
     }(),  
}  
var ifIos = browser.versions.ios;  
var ifAndroid = browser.versions.android; 
var flag;//獲取
function webApp (flag1) {
    //alert(flag1);
    flag = flag1;
} 
//手動選擇城市
$('.city-cell,.city-card').click(function() {
        //alert($(this).attr('data-city'));
        //alert(flag);
    var param = $(this).attr('data-city');
    var cityName = $(this).attr('data-city');
    var strParam = param +'';
    if(flag==1){
        sendCommand();
        function sendCommand(setCityName,param){ 
            var url="protocol://"+strParam; 
            var url1= encodeURI(url);   
            document.location = url1; 
            //alert(strParam);   
        } 
    }else if(ifAndroid){
        androidGetInfo();
        function androidGetInfo(){
           window.jsbridge.setCityName(param);//呼叫android中的setCityName方法。
        } 
    }else if(flag!=1 || !ifIos){//iosWebApp
        alert(param);
    }
    
});