javascript - Behöver öppna blob/PDF i IE-fönster
Jag har koden nedan i mitt TypeScript för att anropa en webb-API-metod och hämta en binär byte-array (blob) som är en PDF. Mitt användarkrav är att öppna PDF:en i ett nytt fönster.
$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
});
});
}
Denna kod fungerar bra i Chrome. Dokumentet öppnas som förväntat. IE däremot frågar "Vill du tillåta att den här webbplatsen öppnar en app på din dator?" och när det tillåts, säger den "Inga appar är installerade för att öppna denna typ av länk (blob)".
Några idéer om hur man öppnar detta i en ny flik eller sparar blobben som en fil som sista utväg?
Svar #1
Anledningen till att det fungerar i Chrome och andra vanliga webbläsare: de har en pdf-förhandsvisare installerad inuti dem.
Leasingavtalet varför det inte fungerar i IE: eftersom i arkitektur om IE bör något PDF-läsarprogram vara installerat på operativsystemet; till exempel, om du har Adobe Acrobat installerat, kommer du att öppna det utan problem.
Jag kan rekommendera dig att använda: pdf.js/.