美文网首页
H5网页打开app内部详情页

H5网页打开app内部详情页

作者: 古月思吉 | 来源:发表于2018-09-07 23:53 被阅读0次
    • 概念:
      (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()
        }
    

    相关文章

      网友评论

          本文标题:H5网页打开app内部详情页

          本文链接:https://www.haomeiwen.com/subject/uxvhgftx.html