【发布时间】:2018-06-20 11:42:30
【问题描述】:
我创建了一个适用于 Windows (UWP) 的示例应用程序并注册了一个 URL 方案
我的计划
它有一个 WebView,其源代码是我的自定义 URL,例如
http//:192.168.1.25:8080/dummywebsite.html
要打开应用程序,我使用的是 win+r 并输入 myscheme://hello 应用程序就会打开
我正在使用此 URL 处理关闭应用程序 myscheme://close
问题是当我打电话给window.location = "myscheme://close";
它询问您要切换应用程序,然后当我单击“是”时它正在关闭应用程序。为什么我已经在该应用程序中时要求切换应用程序
如何直接从外部 javascript 关闭应用程序或删除该确认以切换应用程序
MainPage.xaml
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" >
<WebView x:Name="WebView1" Source="http//:192.168.1.25:8080/dummywebsite.html" ScriptNotify="WebView1_ScriptNotify" />
</Grid>
App.xaml.cs(关闭逻辑)
protected override void OnActivated(IActivatedEventArgs args)
{
// calls when qlicket url is fired
if (args.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
System.Diagnostics.Debug.WriteLine("App Activated");
/// Close App
if (eventArgs.Uri.AbsoluteUri.Contains("close"))
{
global::Windows.UI.Xaml.Application.Current.Exit();
}
}
}
编辑 1:
正如 Martin Zikmund 所建议的,我尝试做同样的事情,但 javascript 会引发错误。
我认为 AppCommunicator 没有注册。
点击以下链接可能有助于使其正常工作
传递给 AddWebAllowedObject 的对象必须从一个 独立于应用程序集的 Windows 运行时组件。这 对 AllowForWeb 属性进行属性标识是必需的 由 WebView 安全子系统。如果您使用应用中的课程 项目,AddWebAllowedObject 不起作用。
更多详情请参考WebAllowedObject
【问题讨论】:
标签: uwp uwp-xaml windows-applications