@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
JavaScript
;
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