在浏览器中打开下载的ics文件'返回后,App出现黑屏
app goes to blank screen upon returning from 'open downloaded ics file in browser'
在我的应用程序中有一个链接,当点击时,生成一个ics日历事件文件,并从控制器返回作为ActionResult/file:
return File(memoryStream, "text/calendar", "calendar.ics");
链接如下:
<a href="/controllerName/MethodName?param=xyz">link</a>
预期结果是:点击链接,浏览器打开并下载文件。当返回应用程序时,停留在应用程序的同一屏幕上。
这在IOS应用程序,IOS和Android的浏览器中正常工作,但在Android应用程序中不正常。在Android应用程序中,点击链接,浏览器打开下载的文件,但当返回到应用程序时,它显示一个空白页面,我需要点击返回按钮两次才能到达旧页面。不知道为什么?看起来它有导航功能,因为href?
为了防止在应用程序中导航到空白页面,我将<a>
更改为<div>
,将href=""
更改为ng-click=syncCalendar()
,并使用$http.post()
从返回上述文件的同一控制器获得响应。我得到的响应是文件的内容,当我将其记录到控制台时,它具有正确的内容,在控制台中显示纯文本。应用不再导航到空白页。这是response
的内容:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VEVENT
DESCRIPTION:...............
DTEND:20161022T110000
DTSTAMP:20161020T145537Z
DTSTART:20161022T104500
LOCATION:123 Test Drive'nNY', NY 123456
SEQUENCE:0
SUMMARY:xyz
UID:123-56h-78di-9dfgh
END:VEVENT
END:VCALENDAR
然后我从我的应用程序中的javascript打开文件:
window.open("data:text/calendar;charset=utf8," + escape(response));
这也适用于iOS和Android的浏览器。但在android应用程序中测试时不起作用。浏览器未按预期打开。不知道是什么问题,为什么它只在安卓应用程序不工作?
原来这是我的android原生应用....中一个愚蠢的代码行我有这个:
webView.loadUrl("about:blank");
嗯,我一直认为这是一个服务器端问题,没有考虑到本地端。因此,当我删除这段代码时,它就会正常运行。
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- JSX/Photoshop:app.activeDocument.saveAs()返回错误
- chrome.app.isInstalled在Chrome中总是返回false
- 当我使用app.use时,Passport总是返回401
- app.get在Node/Express中返回undefined
- express.js:如何在app.get中使用http.request返回的值
- 在浏览器中打开下载的ics文件'返回后,App出现黑屏
- 返回一个q.promise - knockout/app
- 使用app.use的多配置返回TypeError
- 节点app.js返回Error: connect ECONNREFUSED 127.0.0.1:27017
- javascript可以读取从app脚本函数返回的字符串吗?
- 向app.use()返回承诺的包裹快递路线