-1

下面的代码在 Windows 8 中运行,当进入 Windows 8.1 通用应用程序时,它显示将 URL 分配给 wv1.AllowedScriptNotifyUris 时未实现的错误方法。

XAML 代码:

<WebView Name="wv1" ScriptNotify="wv1_ScriptNotify_1" LoadCompleted="wv1_LoadCompleted_1"/>

Cs代码:

private async void BrowserPage_Loaded(object sender, RoutedEventArgs e)
{
    wv1.Navigate(new Uri("http://www.google.com/search?q=" + "Devi", UriKind.RelativeOrAbsolute));            
}
private void wv1_LoadCompleted_1(object sender, NavigationEventArgs e)
{      
    var absolutepath = e.Uri.Host.ToString() + e.Uri.AbsolutePath.ToString().Substring(0, e.Uri.AbsolutePath.ToString().LastIndexOf('/') + 1);
    allowedUris.Add(new Uri(e.Uri.ToString()));
    wv1.AllowedScriptNotifyUris = allowedUris;//error coming in this line
    string[] args = { "this.newfunc_eventHandler=function(e){e.cancelBubble = true;var  dataValue= document.selection.createRange().htmlText.toString();window.external.notify(dataValue);}" };
    wv1.InvokeScript("eval", args);//error also in this line
    string[] arg = { "document.body.addEventListener('copy',newfunc_eventHandler,true);" };
    wv1.InvokeScript("eval", arg);//error also in this line                                    
}

在 Windows 8 应用程序中,此代码用于在 web 视图页面中单击复制按钮时启用脚本。但是当在分配 url 和脚本时进入 windows 8.1 通用应用程序时,它返回方法未实现错误。请帮助解决这个问题...

4

1 回答 1

0

请参阅AllowedScriptNotifyUri 文档中的备注

为 Windows 8.1 编译的应用程序不支持 Windows 8.1 AllowedScriptNotifyUris。要使外部网页能够在调用 window.external.notify 时触发 ScriptNotify 事件,您必须在应用清单的 ApplicationContentUriRules 部分中包含页面的 URI。(您可以在 Visual Studio 中 Package.appxmanifest 设计器的 Content URIs 选项卡上执行此操作。)此列表中的 URI 必须使用 HTTPS,并且可能包含子域通配符(例如 https:// .microsoft.com),但它们不能包含域通配符(例如 https:// .com 和 https:// .)。清单要求不适用于源自应用程序包、使用 ms-local-stream:// URI 或使用 NavigateToString 加载的内容。

于 2016-03-10T05:48:32.657 回答