Download for iOS v1 (#1300)
* handle iOS scenario again * fixed logic * fix steps * add message * fix escaping * fix download button
This commit is contained in:
@ -938,17 +938,22 @@ namespace pxt.editor {
|
||||
}
|
||||
|
||||
function showUploadInstructionsAsync(fn: string, url: string, confirmAsync: (options: any) => Promise<number>) {
|
||||
const boardName = pxt.appTarget.appTheme.boardName || "???";
|
||||
const boardDriveName = pxt.appTarget.appTheme.driveDisplayName || pxt.appTarget.compile.driveName || "???";
|
||||
const boardName = Util.htmlEscape(pxt.appTarget.appTheme.boardName || "???");
|
||||
const boardDriveName = Util.htmlEscape(pxt.appTarget.appTheme.driveDisplayName || pxt.appTarget.compile.driveName || "???");
|
||||
|
||||
// https://msdn.microsoft.com/en-us/library/cc848897.aspx
|
||||
// "For security reasons, data URIs are restricted to downloaded resources.
|
||||
// Data URIs cannot be used for navigation, for scripting, or to populate frame or iframe elements"
|
||||
const userDownload = pxt.BrowserUtils.isBrowserDownloadWithinUserContext();
|
||||
const downloadAgain = !pxt.BrowserUtils.isIE() && !pxt.BrowserUtils.isEdge();
|
||||
const docUrl = pxt.appTarget.appTheme.usbDocs;
|
||||
|
||||
const htmlBody = `
|
||||
<div class="ui grid stackable">
|
||||
const body =
|
||||
userDownload
|
||||
? lf("Click 'Download' to open the {0} app.", pxt.appTarget.appTheme.boardName || "")
|
||||
: undefined;
|
||||
const htmlBody = !userDownload ?
|
||||
`<div class="ui grid stackable">
|
||||
<div class="column sixteen wide">
|
||||
<div class="ui grid">
|
||||
<div class="row">
|
||||
@ -989,15 +994,15 @@ namespace pxt.editor {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
</div>` : undefined;
|
||||
|
||||
const buttons: any[] = [];
|
||||
|
||||
if (downloadAgain) {
|
||||
buttons.push({
|
||||
label: fn,
|
||||
label: userDownload ? lf("Download") : fn,
|
||||
icon: "download",
|
||||
className: "lightgrey focused",
|
||||
class: `${userDownload ? "primary" : "lightgrey"}`,
|
||||
url,
|
||||
fileName: fn
|
||||
});
|
||||
@ -1014,6 +1019,7 @@ namespace pxt.editor {
|
||||
|
||||
return confirmAsync({
|
||||
header: lf("Download to your {0}", pxt.appTarget.appTheme.boardName),
|
||||
body,
|
||||
htmlBody,
|
||||
hasCloseIcon: true,
|
||||
hideCancel: true,
|
||||
|
Reference in New Issue
Block a user