You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
网页内容通过使用 window.external.notify 和 一个 string 参数来发送信息到app,注册 ScriptNotify 就能收到这些信息。为了在调用 window.external.notify 时能发出 ScriptNotify 事件,app必须在 manifest 里包含页面的 URI 到 ApplicationContentUriRules 里,这些 URI 必须使用 https ,可以使用通配符指定子域名,比如:https://*.microsoft.com。对于 app 包内的内容(比如将网页文件放在包内),并无此要求,可以直接使用 ms-local-stream:// URI 即可。
3. UWP开发的Visual studio插件推荐
UWP开发涉及很多UI布局文件,为便于协作和防止xaml文件的冲突,建议安装xaml styler插件,统一xaml格式,减少文件修改的冲突发生。安装后修改XAML Styler配置,Keep first attribute on same line设置为true,Format XAML on save改为false
UWP开发指南
现有工程是基于C++开发的,这里主要讨论C++库,以及基于C++的UWP移植和方案处理。
UWP是微软近些年大力打造的一个支持多设备、多CPU架构、多语言等可以运行在Win10系统的一个通用平台。在这个平台上微软加强了安全性、软件规范性,同时软件必须要经过微软商店的评审,很大程度上保证了软件的质量。
在此平台上,微软摈弃了历史悠久的Win32运行时库,转而提供一个全新的Windows运行时库,被称之为WinRT。WinRT的强大之处在于,它并不限制某一种语言,就目前来说它支持的语言有以下几种
同时,我们还可以使用多种语言来创建我们自己的WinRT库,来满足软件模块复用的需求。对于C++来说,共有三种模块可选择
C++/WinRT,该方案支持完全以C++17的语法来编写代码以及调用WinRT的API,但是如果想要创建一个新的WinRT运行时组件,那么就需要把Lyra的导出类和接口都定义为一个IDL文件,然后由必要的WinRT工具生产相应的实现类来进行导出功能。工程量依然巨大和复杂。C++/CX WinRT,该方案则需要使用CX的语法来将功能导出,同样工程量不小。
UWP模块,该方案可以直接使用现有的C++代码,导出方式也和传统的Win32DLL一致,需要注意的是,某些Win32函数将不再支持,因此,移植的工作就是查看哪些函数不能在UWP环境下运行,然后在WinRT中找到替代方案来代替它。
开发实践
1. 安装包的自定义配置
DISM全称是Deployment Image Servicing and Management,一个命令行的部署映像服务和管理工具。针对特殊的渠道版本,需要附带自定义配置信息,可以利用Preinstall Apps Using DISM中的Use custom data files来实现。
DISM会在App的安装目录下生成的Custom.data文件,文件的格式可以自定义,文件名和内容生成无法修改,后续用户通过商店升级APP后,这个文件也不会丢失。直到用户卸载App时被一起移除,开发者可以将文件放到Appx/microsoft.system.package.metadata目录下(microsoft.system.package.metadata为隐藏目录),来调试自定义配置的定制版本功能。
2. 与网页的交互
参考:https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/web-view
可以通过使用InvokeScriptAsync来调用或注入脚本到webview,通过ScriptNotify 事件从 webview获取信息。
string functionString = String.Format("document.getElementById('nameDiv').innerText = 'Hello, {0}';", nameTextBox.Text); await webView1.InvokeScriptAsync("eval", new string[] { functionString });
3. UWP开发的Visual studio插件推荐
UWP开发涉及很多UI布局文件,为便于协作和防止xaml文件的冲突,建议安装xaml styler插件,统一xaml格式,减少文件修改的冲突发生。安装后修改XAML Styler配置,Keep first attribute on same line设置为true,Format XAML on save改为false
4. 资源管理
The text was updated successfully, but these errors were encountered: