app内嵌的h5页面交互上 可以跳转打开app内的页面吗

JavaScript07

app内嵌的h5页面交互上 可以跳转打开app内的页面吗,第1张

可以的,具体我记不太清了,大致实现方法是进入H5页面,js判断是ios还是android或是h5,然后向ios和android索要起对应的方法,然后判断是否有这个方法,如果有就交还给app

正常情况下微信的 H5 支付跳转到微信并支付成功后,微信会跳转到 Safari 浏览器,打开支付结果页面,不能正常返回 APP 中。这种跳转逻辑对用户来说非常不友好,经过查找资料和一番尝试,我发现通过修改微信支付链接中的 redirect_url,可以做到从 APP 中的微信 H5 支付页面跳转到微信支付完成后直接返回 APP,然后在 APP 中加载支付结果页面。并且多个 APP,多个支付域名也可以正常的返回到 APP。 处理逻辑我抽离出来了一个类, 大家可以点击这里查看 ,好用的话麻烦给个 Star 哈!

内嵌到APP里面的H5页面,当点击APP上的返回按钮或者手机上的返回按钮时,如果H5页面不是页面的跳转,而是仅仅的Tab切换时,就会出现直接跳出页面的情况。

解决的办法:

function isVisible(obj){

var ret = true

if(obj.style.display === "none"){

ret = false

}

return ret

}

function showPage(){

var p1 = $(".pagesa")

var p2 = $(".find_province_wrap")

var p3 = $(".find_city_wrap")

if(isVisible(p1[0])){

$(".pagesa").hide()

p2.show()

window.pageIndex = 'province'//设置页面index,为后面回退做标识

}else if(isVisible(p2[0])){

$(".find_province_wrap").hide()

p3.show()

window.pageIndex = 'city'//设置页面index,为后面回退做标识

}else if(isVisible(p3[0])){

$(".find_city_wrap").hide()

p1.show()

window.pageIndex = 'home'//设置页面index,为后面回退做标识

}

}

function getOSType() {

if (/(Android)/i.test(navigator.userAgent)) {

return 0

} else if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {

return 1

} else {

return 2

}

}

function backButtonClicked(){

var pageIndex = window.pageIndex

var goBack = true//true代表页面不回退。false代表页面回退。

if(pageIndex === "city"){

//find_city_wrap城市页、find_province_wrap省份页、pagesa首页,页面的切换

$(".pagesa").hide()

$(".find_city_wrap").hide()

$(".find_province_wrap").show()

$(".active").removeClass("active")

window.pageIndex = 'province'

}else if (pageIndex === 'province') {

$(".find_city_wrap").hide()

$(".find_province_wrap").hide()

$(".pagesa").show()

window.pageIndex = 'home'

}else{

goBack = false

}

//window.event.returnValue = false

var ostype = getOSType()

if (ostype == 1) {//ios

return goBack

} else{//android

return window.daojia.js_back_result(goBack)

}

}