在Windows运行时应用程序的Webview脚本通知中没有实现该方法或操作c#

时间:2016-03-10 05:37:23

标签: c# windows-8 windows-10-universal windows-8.1-universal

以下代码在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应用程序中,当在webview页面中单击复制按钮时,此代码用于启用脚本。但是在分配url和脚本时来到Windows 8.1 Universal应用程序时,它返回的方法没有实现error.please帮助解决这个问题...

1 个答案:

答案 0 :(得分:0)

请参阅AllowedScriptNotifyUri docs

中的评论

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