Angular、(ActivatedRoute与window.history.pushState({}, null, currenturl)一起使用最新链接无效问题;)

问题:希望内嵌app操作变动外部链接,切换app(外部链接不动)后再切回之前app,能够通过链接信息定位到目标app内部某个地方。
初始使用this.activatedRoute.queryParams.subscribe 以及 window.history.pushState({}, null, currenturl);
发现还是之前的链接信息,最新链接无效。

问题根因在与window.history.pushState没有触发angular 的路由机制。导致angular路由无法拿到最新链接。
解决方法:
直接使用window.location获取最新链接即可

getUrlMap() {
        let params = {};
        let hash;
        let hashes = window.location.search.substr(1).split('&');
        for (let i = 0; i < hashes.length; i++) {
          hash = hashes[i].split('=');
          let key = hash[0];
          let value = hash[1];
          params[key] = value;
        }
        return params;
}
getRouteQueryParams(){
        let params = this.getUrlMap();
        if(params){
            for (let i in params) {
                if (params[i]) {
                    this.initAssetTree[i] = params[i];
                }
            }
        }
} 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容