html5手机详情页,H5网页打开app内部详情页

概念:

(1)URL Schemes,是 H5 或者别的 app 打开自己 app 的一种方式,常用 bundleID 作为 URL Schemes 的标识(避免取的名字与别的 app 重复,打开了别的 app ),这个标识需要在 Targets/Info/URL Types 中设置。

一、流程:

Safari 打开 H5 链接,H5 给 Safari 发送重定向,由 Safari 打开 app(或者打开 app 内部详情页),两种重定向类型(下面的代码是H5页上重定向的代码):

(1)直接打开 app :

window.location.href ='com.English.AJ://';

(2)打开 app 内部详情页:

注释:可以在 H5 的重定向链接后面拼接参数,app 获取后进行解析,推至内部详情页

window.location.href ='com.English.AJ://?extra={"type":"3","h5_url":"[https://reading.talcloud.com/app/apppages/shareclass.html?act_id=18&raz_role=teacher&razflag=hideTitle](https://reading.talcloud.com/app/apppages/shareclass.html?act_id=18&raz_role=teacher&razflag=hideTitle)"}';

二、 app 端的代码:

(1)AppDelegate.m:

//拦截H5跳转app时的链接地址

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

//短信 -> H5 -> app内部详情页

let urlStr = url.absoluteString

let array = urlStr.components(separatedBy: "extra=")

guard array.count >= 1 else {

return true

}

let dictString = array.last!

let extraDict = (dictString as NSString).removingPercentEncoding

let extraDict2 = self.getDictionaryFromJSONString(jsonString: extraDict!)

let jsonData = JSON(extraDict2)

//内部跳转

let model = HomeEntranceModel.deserialize(from: jsonData.dictionaryObject!)

JumpDetailVCTool.share.jumpDetailVCWithModel(model: model)

return true

}

//JSONString转换为字典

func getDictionaryFromJSONString(jsonString:String) ->NSDictionary{

let jsonData:Data = jsonString.data(using: .utf8)!

let dict = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers)

if dict != nil {

return dict as! NSDictionary

}

return NSDictionary()

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值