I have the code below in my typescript to call a web api method and retrieve a binary byte array (blob) that is a PDF. My user requirement is to open PDF in a new window.
$scope.selectRow = (itemImageNumber: string, printProcessId: string, printXmlId: string) => {
itemService.GetOutgoingDocument($scope.item.ItemId, itemImageNumber, printProcessId, printXmlId).success((response) => {
var file = new Blob([response], { type: 'application/pdf' });
var fileUrl = URL.createObjectURL(file);
//$scope.outDocContent = $sce.trustAsResourceUrl(fileUrl);
var win = window.open($sce.trustAsResourceUrl(fileUrl));
win.focus();
}).error(() => {
var message =
"The document you selected can’t be displayed at this time. Please call Customer Service at xxx-xxx-xxxx for assistance.";
$rootScope.$broadcast("app-message", {
type : "danger",
message : message
});
});
}
This code works fine in Chrome. The document opens as expected. IE however asks "Do you want to allow this website to open an app on your computer?" and when allowed, tell me "No apps are installed to open this kind of link (blob)".
Any ideas on how to open this in a new tab or save the blob as a file as a last resort?