📅  最后修改于: 2020-11-19 08:35:24             🧑  作者: Mango
现在,我们将探索Silverlight对可安装在最终用户计算机上的应用程序的支持,这些应用程序可像普通Windows应用程序一样在Web浏览器之外运行。您可能希望应用程序能够在浏览器外运行的主要原因有三个:
它可以实现更好的交互设计。 Web的导航模型并非特别适合某些应用程序。例如,“地址栏”和“后退”按钮可能浪费空间,而且没有用。
Silverlight在这里的重要性如下所示-
Web应用程序可以使用诸如Silverlight,Flash或AJAX之类的客户端技术来提供对单个页面的连续更新,也许不需要导航到其他页面。
在某些应用程序中,用户可能在浏览器认为是单个页面上花费数分钟甚至数小时。
对于此类应用程序,“后退”按钮最终可能会具有退出应用程序的相当令人惊讶的效果,因为它会将您转回进入应用程序之前所在页面的位置。
显然,非网络类应用通常可以通过用完浏览器来更好地服务,因为它可以摆脱浏览器Chrome的困扰。通常,可用性不是耗尽浏览器的唯一原因。
使用此功能的另一个原因是启用脱机执行。当安装Silverlight应用程序以进行浏览器外操作时,会将其复制到本地计算机上的每个用户存储库中,并通过用于启动应用程序的常规操作系统机制(例如Windows的“开始”菜单)变得可用。
即使用户没有Internet连接,该应用程序也将可用。
显然,这仅对不完全依赖服务器端信息的应用程序有用。
例如,如果没有网络连接,用于包裹递送服务的自动跟踪应用程序将不会有太大用处。
对于某些应用程序,在偶尔出现连接故障时继续工作的能力非常有帮助。
Silverlight的版本4添加了对受信任应用程序的支持。 Silverlight的安全沙箱通常会阻止某些特权操作,例如访问用户的文件。
但是,浏览器外的应用程序可能要求提升权限。如果用户同意该请求,则该应用程序将能够执行任何普通Windows应用程序将能够执行的更多工作,例如使用COM Automation或自定义窗口边框。
在浏览器中运行的应用程序永远不会受到信任,因此,如果要使用这些功能,则必须编写一个浏览器外的应用程序。
我们如何编写浏览器外应用程序?这很容易。我们必须在Silverlight的项目属性中更改一个设置,它只是向AppManifest.xaml添加一个合适的设置。
让我们看看它是如何工作的。
当清单表明支持浏览器外执行时,这没有任何初始效果。该应用程序将照常在浏览器中运行。
但是,如果用户单击鼠标右键,则标准Silverlight ContextMenu将提供一个额外项,以在计算机上安装该应用程序。
如果用户选择该项目,则会出现一个对话框,要求您进行确认。它还询问是否应从“开始”菜单和/或“桌面”访问该应用程序。
您不必依靠上下文菜单。您还可以提供一个按钮,用户可以单击该按钮来安装应用程序,因为有一个API,您可以调用它来启动安装。
当您以编程方式启动安装时,用户仍然会看到对话框。未经用户同意,您无法安装应用。
这是一个非常简单的Silverlight应用程序。以下是其XAML代码。
步骤1-要启用浏览器外执行,请转到项目的“属性” ,然后单击“ Silverlight”选项卡。我们需要做的就是-选中“从浏览器中启用正在运行的应用程序”复选框。
如果运行此应用程序,您会发现根本无法使用网络浏览器。
实际上,Visual Studio已代表您做出了决定。启用浏览器外执行时,它不公平地更改了调试设置。
步骤2-因此,在解决方案资源管理器中,请注意,Silverlight项目现在以粗体显示,表明它是一个启动项目。
以前不是这种情况。这曾经是网络项目。现在,我们不想要那样,因为我们想展示该复选框如何改变最终用户的情况。
步骤3-我们将把Web项目设置回启动项目。
步骤4-再次运行该应用程序,您将看到该应用程序现在又回到了浏览器中。
步骤5-右键单击网页。您会在上下文菜单中注意到通常的Silverlight条目,并需要安装其他项目。
步骤6-当选择第二个选项时,出现“安装应用程序”对话框,如下所示。
注意,它显示了应用程序来自的网站的根URL。我们正在使用Visual Studio提供的本地调试Web服务器,这就是为什么它显示localhost的原因。
步骤7-单击确定,应用程序将在其自己的窗口(与浏览器分开)中运行。
可以自然地认为该窗口是由浏览器拥有或连接到浏览器的,但事实并非如此。您可以关闭浏览器,并且该窗口一直存在。更重要的是,您可以关闭此窗口,然后完全不使用浏览器就重新运行该应用程序。
步骤8-如果在“开始”菜单中打开“搜索”对话框并开始键入应用程序名称,则它会像任何普通的Windows应用程序一样显示。
步骤9-您可以在浏览器不可见的情况下运行它。
应用程序上的默认上下文菜单提供了一种简便的方法。用户可以合理地期望以与其他任何应用程序相同的方式卸载此程序。
您也可以通过右键单击网页并选择“删除此应用程序…”来删除。
尽管我们只需要更改一个设置即可启用浏览器外操作,但实际上,您通常还需要做更多的事情。 AppManifest.xaml文件可以包含一些与浏览器外操作相关的设置,我们通常通过Visual Studio对其进行配置。
您可能已经注意到,当您选中启用浏览器外运行复选框时,Visual Studio启用了一个标记为“浏览器外设置”的按钮。
让我们通过单击按钮进行查看。它将产生以下对话框。
我们可以配置的第一件事是显示为“窗口标题”的文本。
我们还可以选择固定窗口的尺寸和位置,但是暂时将其保留为自动状态。
安装该应用程序后,此快捷方式名称将显示在“开始”菜单和“桌面”链接中。
它也是显示在上下文菜单和安装应用程序对话框中的文本。
当我将鼠标悬停在快捷方式上时,此应用程序描述将显示在工具提示中。
我们将提供各种尺寸的图标。这些必须内置到您的项目中。