标签: winjs

如何重置<input type ="file">

我正在使用VS2012和Javascript开发一个metro应用程序

我想重置文件输入的内容:

<input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" />
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

javascript winjs visual-studio-2012

361
推荐指数
19
解决办法
43万
查看次数

在Windows 8 Metro JavaScript App中使用jQuery会导致安全性错误

由于听起来jQuery是Metro JavaScript应用程序的一个选项,我开始期待Windows 8开发.我安装了Visual Studio 2012 Express RC并启动了一个新项目(空模板和网格模板都有同样的问题).

我制作了jQuery 1.7.2的本地副本,并将其添加为脚本参考.

<!-- SomeTestApp references -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/jquery-1.7.2.js"></script>
<script src="/js/default.js"></script>
Run Code Online (Sandbox Code Playgroud)

不幸的是,只要我运行生成的应用程序,它就会抛出一个控制台错误:

HTML1701:无法添加动态内容'a'脚本试图注入可能不安全的动态内容或先前动态修改的元素.例如,使用innerHTML属性添加脚本或格式错误的HTML将生成此异常.使用toStaticHTML方法过滤动态内容,或使用createElement等方法显式创建元素和属性.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=247104.

我在一个非缩小版本的jQuery中打了一个断点,发现了令人讨厌的行:

div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
Run Code Online (Sandbox Code Playgroud)

显然,Metro应用程序的安全模型禁止以这种方式创建元素.此错误不会对用户造成任何直接问题,但考虑到其位置,我担心它会导致jQuery中的功能发现测试失败,而不应该.

我绝对希望jQuery $.Deferred能让所有事情变得更轻松.我宁愿能够使用选择器引擎和事件处理系统,但如果必须的话我会没有它们.

如何让最新的jQuery与Metro开发很好地配合?

jquery microsoft-metro winjs visual-studio-2012

44
推荐指数
5
解决办法
3万
查看次数

WinJs在浏览器中?

在尝试使用新的Visual Studio 11预览后,我认为最有趣的问题是如何在浏览器中运行基于javascript的新应用程序并进行最少的更改?那可能吗?我想支持javascript的想法是为了更好的跨平台应用程序,我是对的吗?

我理解一些winJs代码调用WinRT,但是我们也可以在基于Web的应用程序上使用一些WinJS代码吗?

windows-8 winjs visual-studio-2012

28
推荐指数
3
解决办法
1万
查看次数

显示:Flex溢出时会失去正确的填充?

我有一个CSS3 flexbox的问题.

如果我将flexbox元素overflow设置为并min-width为子元素设置值,则父元素上的右边填充将丢失?这在所有支持浏览器上都是一致的.

这是一个错误的例子.如果滚动到容器的右侧,您将看到最后一个孩子难以抵靠容器的右边缘,而不是遵守填充值.

.outer {
    display: flex;
    flex-direction: row;
    width: 300px;
    height: 80px;
    border:1px #ccc solid;
    overflow-x: auto;
    padding: 5px;
}
.outer > div {
    flex: 1 1 auto;
    border: 1px #ccc solid;
    text-align: center;
    min-width: 50px;
    margin: 5px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="outer">
    <div>text1</div>
    <div>text2</div>
    <div>text3</div>
    <div>text4</div>
    <div>text5</div>
    <div>text6</div>
    <div>text7</div>
    <div>text8</div>
    <div>text9</div>
    <div>text10</div>
</div>
Run Code Online (Sandbox Code Playgroud)

有谁知道这是为什么以及如何纠正它?我搞砸周围padding,并margin在没有成功不同的组合值.

html css css3 flexbox winjs

21
推荐指数
3
解决办法
5272
查看次数

链接承诺递归

我正在开发一个简单的Windows 8应用程序,我需要从网站上获取一组数据.我正在使用WinJS.xhr()来检索此数据,该数据返回Promise.然后我将一个回调传递给这个Promise的.then()方法,该方法为我的回调提供异步调用的返回值..then()方法返回另一个Promise,为其提供我的回调返回的值.这种查询的基本结构如下:

WinJS.xhr({ url: "http://www.example.com/" }).then(
    function callback( result_from_xhr )
    {
        //do stuff
        return some_value;
    }).then(
    function secondcallback( some_value )
    {
        //do stuff
    });
Run Code Online (Sandbox Code Playgroud)

但是,在我的情况下,我可能需要根据第一个查询返回的数据进行额外的数据查询,并且可能还需要更多查询,具体取决于THAT数据......等等,递归查询.

我需要一种方法对其进行编码,以便在所有递归完成之前不执行最终的.then(),类似于:

function recurse() {
    return WinJS.xhr({ url: "http://www.example.com/" }).then(
        function callback( result_from_xhr )
        {
            if( result_from_xhr == something )
            {
               recurse();
            }
        });
}

recurse().then(
function final()
{
    //finishing code
});
Run Code Online (Sandbox Code Playgroud)

问题是,当然,只要第一级递归完成,就会调用整理代码.我需要一些方法来在回调中嵌套新的promise和旧的promise.

我希望我的问题很清楚,我真的不确定如何解释它,坦率地说,异步递归代码的想法让我头疼.

javascript windows-8 winjs

17
推荐指数
3
解决办法
1万
查看次数

部署使用SQLite的Windows 8 Metro应用程序

背景

我们正在使用System Center 2012在运行Windows 8 Enterprise x64的领域中将Windows 8 Metro风格的应用程序部署到三星平板电脑.平板连接到域并具有持久的DirectAccess连接,允许System Center将应用程序和更新推送到设备.

我们必须将我们的应用程序部署到现场可能有数百台设备,这就是我们进入System Center路线的原因.使用组策略在每个设备上安装代码签名证书.要部署应用程序,只需提供包输出并指定要安装它的设备集合.该应用程序只需几分钟即可显示在设备上.

我们遇到的问题是,当System Center部署我们的应用程序时,SQLite依赖关系丢失,我们的数据访问都不起作用.

关于我们的项目

我们的应用程序是一个使用SQLite作为后端的WinJS应用程序.但是,我们所有的数据访问代码都在WinJS项目引用的C#WinMD项目中.我们使用sqlite-net库与SQLite交谈 - 我们在C#项目中包含了它的源代码.

在Visual Studio中,我们安装了SQL Run for Windows Runtime扩展,如Tim Heuer的文章中所述.Metro应用程序引用了这个.

使用其他部署方法进行测试

当您在本地调试或运行它时,应用程序的SQLite数据访问工作正常 - 在Debug/Release和x86/x64中.

应用程序打包过程提供了一个PowerShell脚本,您可以根据需要使用该脚本来安装应用程序和开发人员许可证.使用PowerShell脚本安装我们的应用程序时,SQLite数据访问也可以正常工作.通过打包和安装应用程序的Debug/Release和x86/x64版本来验证这一点.

故障排除

当应用程序首次尝试使用SQLite时,我们会看到一个关于它无法找到sqlite3.dll的异常.

我们已经尝试/验证了以下内容:

  • 确认我们正在部署Release/x64版本
  • 检查WinRAR中的appx并验证它是否包含sqlite3.dll
  • 从C#项目而不是WinJS项目引用"SQLite for Windows Runtime"扩展
  • 还引用了C++运行时,这导致System Center在部署应用程序时失败.不知道为什么,但调查一下.

更新 问题是System Center在部署SQLite库所需的Visual C++运行时库依赖项时遇到问题.所以不幸的是,这不再是一个编程问题了.我们正在获得一些帮助,我将发布修复程序.

sql sqlite microsoft-metro windows-8 winjs

16
推荐指数
1
解决办法
1370
查看次数

dispatchEvent是同步还是异步功能

我正在尝试为WinJS中的自定义事件编写事件处理程序.我不太确定这在IE中是如何工作的 - 我正在创建一个自定义事件并调度它 -

var eventObject = document.createEvent("CustomEvent");
eventObject.initCustomEvent("dropbomb", true, true, null);
this._element.dispatchEvent(eventObject);
Run Code Online (Sandbox Code Playgroud)

我的经纪人是 -

this._element.addEventListener("logtelemetry", function () {
                console.log("boom");
});
Run Code Online (Sandbox Code Playgroud)

我可以确定将同步调用处理程序而不是稍后调用吗?如果是,那么证据是什么.

javascript javascript-events winjs windows-store-apps

15
推荐指数
2
解决办法
5080
查看次数

推送Windows Phone(WNS)消息:阻止的频道URL

我有一个在Windows Phone 8.1设备上运行的Windows Phone应用程序,我正在使用(WNS)向设备发送推送消息.提供推送消息已经工作了大约8天,直到我在响应中收到类似于这些的WNS标头:Windows Push Notification Services

X-WNS-NOTIFICATIONSTATUS: dropped
X-WNS-STATUS: dropped
X-WNS-ERROR-DESCRIPTION: Blocked channel URL
X-WNS-MSG-ID: 2DC1361376C2827E
X-WNS-DEBUG-TRACE: DB5SCH101121937
Run Code Online (Sandbox Code Playgroud)

我没有更改推送服务器实现,也没有更改Windows Phone设备上的代码.两个组件的构建几乎没有变化.我在一个工作日结束时回家了,第二天,我进行了一个简单的测试,只是为了呈现那个特定的错误.我尝试了以下尝试解决问题:

  • 在设备上重新创建了频道URL.
  • 将现有Windows Phone应用程序重新关联到商店.
  • Visual Studio中创建新的Windows Phone应用程序(与存储关联后).
  • 在开发人员门户上重新创建Windows Phone应用程序.
  • 使用不同的物理设备.

每个都没有成功.关于WNS的文档很少,我没有其他支持渠道,所以我很难过.可能导致此特定错误的原因"Blocked channel URL",或者,我该如何解决?

winjs windows-phone-8 wns

15
推荐指数
1
解决办法
1025
查看次数

Metro风格应用:WinJS必备?

昨天我开始使用JavaScript开发我的第一个Metro风格应用程序.我在Visual Studio 2011中使用了其中一个模板.这个项目模板附带了一堆生成的代码,这些代码在很大程度上依赖于WinJS.整个结构提醒ASP.NET的视图和相应的Code Behind文件.还有一个navigator.js文件,负责视图之间的导航.整个数据驻留在data.js中,可以使用不同的函数进行检索.

我使用backbone.js,我发现它的概念像MVC结构和路由非常酷.我的问题基本上是你是否可以使用backbone.js实现这样的Metro风格应用程序?我可以消除WinJS并从头开始吗?我应该尝试将backbone.js集成到当前结构中吗?那会是什么样子?使用第三方JavaScript框架有任何限制吗?我应该保留生成的结构吗?

使用JavaScript开发Metro Style应用程序的最佳实践和模式是什么?

谢谢

microsoft-metro windows-8 windows-runtime winjs

14
推荐指数
1
解决办法
6556
查看次数

存储Cookie Windows应用商店应用

正如我在这里发现的那样,当我打电话给服务器以cookie的形式请求身份验证时,响应中的cookie由底层的metro框架自动处理.

但是,这意味着我无法访问cookie,因此,当应用程序暂停供以后使用时,无法存储它.我们如何在地铁框架中存储cookie信息?

非常感谢所有帮助,我总是接受答案!

javascript cookies html5 winjs windows-store-apps

14
推荐指数
1
解决办法
1554
查看次数