【问题标题】:Track Start and end web request at ionic framework在 ionic 框架中跟踪开始和结束 Web 请求
【发布时间】:2014-12-11 10:18:28
【问题描述】:

我正在使用离子框架和 Angular JS。

我不确定从哪里开始跟踪网络请求的开始。

对于结束请求,我写了一个带有 onLoad 标签的指令。

这里是代码

Directive.js

app.directive('iframeOnload', [function(){
    return {
        scope: {
            callBack: '&iframeOnload'
        },
        link: function(scope, element, attrs){
            element.on('load', function(){
                return scope.callBack({DOMelement: this});
            })
        }
    }}]);

HTML

<iframe id="webFrame" iframe-onload="iframeLoadedCallBack()" style="width:100%;height:650px;" ng-src='{{goToURL}}' ng-hide='hideIFrame'></iframe>

控制器 回调函数是

    $scope.iframeLoadedCallBack = function() {
        console.log('iframeLoadedCallback');
        // finished web request callback do something here
    };

我猜 Web 请求的开始有类似的东西。我需要跟踪发送请求的 URL。

我是一名 iOS 开发者,实际上我想做一些类似于这个协议的事情 UIWebViewDelegate.

非常感谢

【问题讨论】:

  • 原来来自 $httpProvider 的拦截器没有捕获 iframe 的请求,我的错,对不起。
  • 拦截器捕获所有$http对象的请求,包括ui-route。我希望它可以帮助使用替代方法加载外部链接的人。
  • 它还捕获了对模板 html 的所有请求,这就是为什么我认为它应该对 iframe 有所帮助。

标签: javascript angularjs cordova ionic-framework uiwebviewdelegate


【解决方案1】:

虽然它可能无法完美运行,但在 iframeLoadedCallback

您可以添加以下代码

 var webFrame = angular.element(document.getElementById('webFrame'));
 webFrame[0].contentDocument.onclick = $scope.clickOnIframe;

它会跟踪 iframe 内的每个点击事件,其余部分将是通过事件内的 ID、标签、类等进行跟踪的硬代码。

希望对有类似问题的人有所帮助。

【讨论】:

    【解决方案2】:

    您可以使用 NSURLProtocol 跟踪所有 Web 请求,希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多