How to use JavaScript to interact with Android and IOS Back
window . jsCallBack . func ( status , msg ) ;
window . location . href = 'objc://' + 'getParam1:withParam2::/' + EncodeUtf8 ( status ) + ':/' + EncodeUtf8 ( msg ) ;
/** utf8 encoding */
function EncodeUtf8 ( s1 ) {
/** func escape is used to encode characters outside alphabet like "Visit W3School!" -> "Visit%20W3School%21" */
var s = escape ( s1 ) ;
var sa = s . split ( "%" ) ; /** sa[1] = u6211 */
var retV = "" ;
if ( sa [ 0 ] != "" ) {
retV = sa [ 0 ] ;
}
for ( var i = 1 ; i < sa . length ; i ++ ) {
if ( sa [ i ] . substring ( 0 , 1 ) == "u" ) {
retV += Hex2Utf8 ( Str2Hex ( sa [ i ] . substring ( 1 , 5 ) ) ) ;
if ( sa [ i ] . length >= 6 ) {
retV += sa [ i ] . substring ( 5 ) ;
}
}
else retV += "%" + sa [ i ] ;
}
return retV ;
}
function Str2Hex ( s ) {
var c = "" ;
var n ;
var ss = "0123456789ABCDEF" ;
var digS = "" ;
for ( var i = 0 ; i < s . length ; i ++ ) {
c = s . charAt ( i ) ;
n = ss . indexOf ( c ) ;
digS += Dec2Dig ( eval ( n ) ) ;
}
//return value;
return digS ;
}
function Dec2Dig ( n1 ) {
var s = "" ;
var n2 = 0 ;
for ( var i = 0 ; i < 4 ; i ++ ) {
n2 = Math . pow ( 2 , 3 - i ) ;
if ( n1 >= n2 ) {
s += '1' ;
n1 = n1 - n2 ;
}
else
s += '0' ;
}
return s ;
}
function Dig2Dec ( s ) {
var retV = 0 ;
if ( s . length == 4 ) {
for ( var i = 0 ; i < 4 ; i ++ ) {
retV += eval ( s . charAt ( i ) ) * Math . pow ( 2 , 3 - i ) ;
}
return retV ;
}
return - 1 ;
}
function Hex2Utf8 ( s ) {
var retS = "" ;
var tempS = "" ;
var ss = "" ;
if ( s . length == 16 ) {
tempS = "1110" + s . substring ( 0 , 4 ) ;
tempS += "10" + s . substring ( 4 , 10 ) ;
tempS += "10" + s . substring ( 10 , 16 ) ;
var sss = "0123456789ABCDEF" ;
for ( var i = 0 ; i < 3 ; i ++ ) {
retS += "%" ;
ss = tempS . substring ( i * 8 , ( eval ( i ) + 1 ) * 8 ) ;
retS += sss . charAt ( Dig2Dec ( ss . substring ( 0 , 4 ) ) ) ;
retS += sss . charAt ( Dig2Dec ( ss . substring ( 4 , 8 ) ) ) ;
}
return retS ;
}
return "" ;
}