UNPKG

@nota/nativescript-webview-ext

Version:

Extended WebView for NativeScript which adds 'x-local' scheme for local-files. events between WebView and native-layer, javascript execution, injecting CSS and JS-files.

78 lines 11.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var UIWebViewDelegateImpl = (function (_super) { __extends(UIWebViewDelegateImpl, _super); function UIWebViewDelegateImpl() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.uiWebViewJSNavigation = false; return _this; } UIWebViewDelegateImpl.initWithOwner = function (owner) { var delegate = UIWebViewDelegateImpl.new(); delegate._owner = owner; return delegate; }; UIWebViewDelegateImpl.prototype.webViewShouldStartLoadWithRequestNavigationType = function (webView, request, navigationType) { var owner = this._owner.get(); if (owner && request.URL) { var navType = "other"; switch (navigationType) { case 0: navType = "linkClicked"; break; case 1: navType = "formSubmitted"; break; case 2: navType = "backForward"; break; case 3: navType = "reload"; break; case 4: navType = "formResubmitted"; break; } var absoluteUrl = request.URL.absoluteString; owner.writeTrace("UIWebViewDelegateClass.webViewShouldStartLoadWithRequestNavigationType(" + absoluteUrl + ", " + navigationType + ")"); if (navType === "other" && absoluteUrl.startsWith("js2ios:")) { owner.onUIWebViewEvent(absoluteUrl); return false; } owner._onLoadStarted(request.URL.absoluteString, navType); } return true; }; UIWebViewDelegateImpl.prototype.webViewDidStartLoad = function (webView) { var owner = this._owner.get(); if (owner) { owner.writeTrace("UIWebViewDelegateClass.webViewDidStartLoad(" + webView.request.URL + ")"); } }; UIWebViewDelegateImpl.prototype.webViewDidFinishLoad = function (webView) { var owner = this._owner.get(); if (owner) { owner.writeTrace("UIWebViewDelegateClass.webViewDidFinishLoad(" + webView.request.URL + ")"); var src = owner.src; if (webView.request && webView.request.URL) { src = webView.request.URL.absoluteString; } owner._onLoadFinished(src); } }; UIWebViewDelegateImpl.prototype.webViewDidFailLoadWithError = function (webView, error) { var owner = this._owner.get(); if (owner) { var src = owner.src; if (webView.request && webView.request.URL) { src = webView.request.URL.absoluteString; } owner.writeTrace("UIWebViewDelegateClass.webViewDidFailLoadWithError(" + error.localizedDescription + ") url: " + src); owner._onLoadFinished(src, error.localizedDescription); } }; UIWebViewDelegateImpl.ObjCProtocols = [UIWebViewDelegate]; return UIWebViewDelegateImpl; }(NSObject)); exports.UIWebViewDelegateImpl = UIWebViewDelegateImpl; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vidmlldy1leHQudWl3ZWJ2aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2Vidmlldy1leHQudWl3ZWJ2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUE7SUFBMkMseUNBQVE7SUFBbkQ7UUFBQSxxRUFrRkM7UUFuQ1EsMkJBQXFCLEdBQUcsS0FBSyxDQUFDOztJQW1DdkMsQ0FBQztJQTdFZSxtQ0FBYSxHQUEzQixVQUE0QixLQUE4QjtRQUN0RCxJQUFJLFFBQVEsR0FBMEIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEUsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEIsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU0sK0VBQStDLEdBQXRELFVBQXVELE9BQWtCLEVBQUUsT0FBcUIsRUFBRSxjQUFzQjtRQUNwSCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTlCLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sR0FBbUIsT0FBTyxDQUFDO1lBRXRDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCO29CQUNJLE9BQU8sR0FBRyxhQUFhLENBQUM7b0JBQ3hCLEtBQUssQ0FBQztnQkFDVjtvQkFDSSxPQUFPLEdBQUcsZUFBZSxDQUFDO29CQUMxQixLQUFLLENBQUM7Z0JBQ1Y7b0JBQ0ksT0FBTyxHQUFHLGFBQWEsQ0FBQztvQkFDeEIsS0FBSyxDQUFDO2dCQUNWO29CQUNJLE9BQU8sR0FBRyxRQUFRLENBQUM7b0JBQ25CLEtBQUssQ0FBQztnQkFDVjtvQkFDSSxPQUFPLEdBQUcsaUJBQWlCLENBQUM7b0JBQzVCLEtBQUssQ0FBQztZQUNkLENBQUM7WUFFRCxJQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUMvQyxLQUFLLENBQUMsVUFBVSxDQUFDLHlFQUF5RSxHQUFHLFdBQVcsR0FBRyxJQUFJLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ3hJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNqQixDQUFDO1lBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBSU0sbURBQW1CLEdBQTFCLFVBQTJCLE9BQWtCO1FBQ3pDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDOUIsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNSLEtBQUssQ0FBQyxVQUFVLENBQUMsNkNBQTZDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDaEcsQ0FBQztJQUNMLENBQUM7SUFFTSxvREFBb0IsR0FBM0IsVUFBNEIsT0FBa0I7UUFDMUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU5QixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ1IsS0FBSyxDQUFDLFVBQVUsQ0FBQyw4Q0FBOEMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUU3RixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3BCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQzdDLENBQUM7WUFDRCxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBRU0sMkRBQTJCLEdBQWxDLFVBQW1DLE9BQWtCLEVBQUUsS0FBYztRQUNqRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzlCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDUixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3BCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQzdDLENBQUM7WUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLHFEQUFxRCxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDdkgsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNMLENBQUM7SUFoRmEsbUNBQWEsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFpRnBELDRCQUFDO0NBQUEsQUFsRkQsQ0FBMkMsUUFBUSxHQWtGbEQ7QUFsRlksc0RBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vbm9kZV9tb2R1bGVzL3Rucy1wbGF0Zm9ybS1kZWNsYXJhdGlvbnMvaW9zLmQudHNcIiAvPlxuXG5pbXBvcnQgeyBOYXZpZ2F0aW9uVHlwZSwgdHJhY2VDYXRlZ29yaWVzLCB0cmFjZUVuYWJsZWQsIHRyYWNlTWVzc2FnZVR5cGUsIHRyYWNlV3JpdGUsIFdlYlZpZXdFeHRCYXNlIH0gZnJvbSBcIi4vd2Vidmlldy1leHQtY29tbW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBVSVdlYlZpZXdEZWxlZ2F0ZUltcGwgZXh0ZW5kcyBOU09iamVjdCBpbXBsZW1lbnRzIFVJV2ViVmlld0RlbGVnYXRlIHtcbiAgcHVibGljIHN0YXRpYyBPYmpDUHJvdG9jb2xzID0gW1VJV2ViVmlld0RlbGVnYXRlXTtcblxuICBwcml2YXRlIF9vd25lcjogV2Vha1JlZjxXZWJWaWV3RXh0QmFzZT47XG5cbiAgcHVibGljIHN0YXRpYyBpbml0V2l0aE93bmVyKG93bmVyOiBXZWFrUmVmPFdlYlZpZXdFeHRCYXNlPik6IFVJV2ViVmlld0RlbGVnYXRlSW1wbCB7XG4gICAgICBsZXQgZGVsZWdhdGUgPSA8VUlXZWJWaWV3RGVsZWdhdGVJbXBsPlVJV2ViVmlld0RlbGVnYXRlSW1wbC5uZXcoKTtcbiAgICAgIGRlbGVnYXRlLl9vd25lciA9IG93bmVyO1xuICAgICAgcmV0dXJuIGRlbGVnYXRlO1xuICB9XG5cbiAgcHVibGljIHdlYlZpZXdTaG91bGRTdGFydExvYWRXaXRoUmVxdWVzdE5hdmlnYXRpb25UeXBlKHdlYlZpZXc6IFVJV2ViVmlldywgcmVxdWVzdDogTlNVUkxSZXF1ZXN0LCBuYXZpZ2F0aW9uVHlwZTogbnVtYmVyKSB7XG4gICAgICBsZXQgb3duZXIgPSB0aGlzLl9vd25lci5nZXQoKTtcblxuICAgICAgaWYgKG93bmVyICYmIHJlcXVlc3QuVVJMKSB7XG4gICAgICAgICAgbGV0IG5hdlR5cGU6IE5hdmlnYXRpb25UeXBlID0gXCJvdGhlclwiO1xuXG4gICAgICAgICAgc3dpdGNoIChuYXZpZ2F0aW9uVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlIFVJV2ViVmlld05hdmlnYXRpb25UeXBlLkxpbmtDbGlja2VkOlxuICAgICAgICAgICAgICAgICAgbmF2VHlwZSA9IFwibGlua0NsaWNrZWRcIjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFVJV2ViVmlld05hdmlnYXRpb25UeXBlLkZvcm1TdWJtaXR0ZWQ6XG4gICAgICAgICAgICAgICAgICBuYXZUeXBlID0gXCJmb3JtU3VibWl0dGVkXCI7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBVSVdlYlZpZXdOYXZpZ2F0aW9uVHlwZS5CYWNrRm9yd2FyZDpcbiAgICAgICAgICAgICAgICAgIG5hdlR5cGUgPSBcImJhY2tGb3J3YXJkXCI7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBVSVdlYlZpZXdOYXZpZ2F0aW9uVHlwZS5SZWxvYWQ6XG4gICAgICAgICAgICAgICAgICBuYXZUeXBlID0gXCJyZWxvYWRcIjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFVJV2ViVmlld05hdmlnYXRpb25UeXBlLkZvcm1SZXN1Ym1pdHRlZDpcbiAgICAgICAgICAgICAgICAgIG5hdlR5cGUgPSBcImZvcm1SZXN1Ym1pdHRlZFwiO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYWJzb2x1dGVVcmwgPSByZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZztcbiAgICAgICAgICBvd25lci53cml0ZVRyYWNlKFwiVUlXZWJWaWV3RGVsZWdhdGVDbGFzcy53ZWJWaWV3U2hvdWxkU3RhcnRMb2FkV2l0aFJlcXVlc3ROYXZpZ2F0aW9uVHlwZShcIiArIGFic29sdXRlVXJsICsgXCIsIFwiICsgbmF2aWdhdGlvblR5cGUgKyBcIilcIik7XG4gICAgICAgICAgaWYgKG5hdlR5cGUgPT09IFwib3RoZXJcIiAmJiBhYnNvbHV0ZVVybC5zdGFydHNXaXRoKFwianMyaW9zOlwiKSkge1xuICAgICAgICAgICAgICBvd25lci5vblVJV2ViVmlld0V2ZW50KGFic29sdXRlVXJsKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvd25lci5fb25Mb2FkU3RhcnRlZChyZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZywgbmF2VHlwZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHVpV2ViVmlld0pTTmF2aWdhdGlvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyB3ZWJWaWV3RGlkU3RhcnRMb2FkKHdlYlZpZXc6IFVJV2ViVmlldykge1xuICAgICAgbGV0IG93bmVyID0gdGhpcy5fb3duZXIuZ2V0KCk7XG4gICAgICBpZiAob3duZXIpIHtcbiAgICAgICAgICBvd25lci53cml0ZVRyYWNlKFwiVUlXZWJWaWV3RGVsZWdhdGVDbGFzcy53ZWJWaWV3RGlkU3RhcnRMb2FkKFwiICsgd2ViVmlldy5yZXF1ZXN0LlVSTCArIFwiKVwiKTtcbiAgICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3ZWJWaWV3RGlkRmluaXNoTG9hZCh3ZWJWaWV3OiBVSVdlYlZpZXcpIHtcbiAgICAgIGxldCBvd25lciA9IHRoaXMuX293bmVyLmdldCgpO1xuXG4gICAgICBpZiAob3duZXIpIHtcbiAgICAgICAgICBvd25lci53cml0ZVRyYWNlKFwiVUlXZWJWaWV3RGVsZWdhdGVDbGFzcy53ZWJWaWV3RGlkRmluaXNoTG9hZChcIiArIHdlYlZpZXcucmVxdWVzdC5VUkwgKyBcIilcIik7XG5cbiAgICAgICAgICBsZXQgc3JjID0gb3duZXIuc3JjO1xuICAgICAgICAgIGlmICh3ZWJWaWV3LnJlcXVlc3QgJiYgd2ViVmlldy5yZXF1ZXN0LlVSTCkge1xuICAgICAgICAgICAgICBzcmMgPSB3ZWJWaWV3LnJlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvd25lci5fb25Mb2FkRmluaXNoZWQoc3JjKTtcbiAgICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3ZWJWaWV3RGlkRmFpbExvYWRXaXRoRXJyb3Iod2ViVmlldzogVUlXZWJWaWV3LCBlcnJvcjogTlNFcnJvcikge1xuICAgICAgbGV0IG93bmVyID0gdGhpcy5fb3duZXIuZ2V0KCk7XG4gICAgICBpZiAob3duZXIpIHtcbiAgICAgICAgICBsZXQgc3JjID0gb3duZXIuc3JjO1xuICAgICAgICAgIGlmICh3ZWJWaWV3LnJlcXVlc3QgJiYgd2ViVmlldy5yZXF1ZXN0LlVSTCkge1xuICAgICAgICAgICAgICBzcmMgPSB3ZWJWaWV3LnJlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG93bmVyLndyaXRlVHJhY2UoXCJVSVdlYlZpZXdEZWxlZ2F0ZUNsYXNzLndlYlZpZXdEaWRGYWlsTG9hZFdpdGhFcnJvcihcIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uICsgXCIpIHVybDogXCIgKyBzcmMpO1xuICAgICAgICAgIG93bmVyLl9vbkxvYWRGaW5pc2hlZChzcmMsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgfVxufVxuIl19