コード例 #1
0
        private async void NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
        {
            foreach (RulesItem item in App.Rules.rules.compact.history)
            {
                if (item.status)
                {
                    RemoveElementsByClassName(item.value);
                }
            }
            var    width    = HistoryWebView.ActualHeight;
            string template = "var elements = document.getElementsByClassName('{{0}}');if (elements.length > 0){elements[0].style.width='{{1}}';elements[0].style.float='left';};document.body.style.overflowX='hidden';";

            template = Utils.TransferTemplate(template);
            string script = string.Format(template, "wrapper_main", width);
            await HistoryWebView.InvokeScriptAsync("eval", new string[] { script });

            template = "var elements = document.getElementsByClassName('{{0}}');if (elements.length > 0){elements[0].style.position='relative';elements[0].style.left='100px';elements[0].style.margin='0px';}";
            template = Utils.TransferTemplate(template);
            script   = string.Format(template, "mod_search");
            await HistoryWebView.InvokeScriptAsync("eval", new string[] { script });

            //使所有链接都触发新窗口
            script = "var elements = document.getElementsByTagName('a');for(var i=0;i<elements.length;i++){elements[i].target='_blank';}";
            await HistoryWebView.InvokeScriptAsync("eval", new string[] { script });

            Loading.IsActive = false;
            Blur.Visibility  = Visibility.Collapsed;
        }
コード例 #2
0
 private void Init()
 {
     SystemNavigationManager.BackRequested += BackRequested;
     SystemNavigationManager.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
     Loading.IsActive = true;
     Blur.Visibility  = Visibility.Visible;
     HistoryWebView.Navigate(new Uri(Url));
 }
コード例 #3
0
        private async void RemoveElementsByClassName(string ClassName)
        {
            string template = "while(true){var elements = document.getElementsByClassName('{{0}}');if(elements.length>0){for(var i=0;i<elements.length;i++){elements[i].parentNode.removeChild(elements[i]);} }else{break;} }";

            template = Utils.TransferTemplate(template);
            string script = string.Format(template, ClassName);
            await HistoryWebView.InvokeScriptAsync("eval", new string[] { script });
        }
コード例 #4
0
        private async void AdaptWebViewWithWindow()
        {
            var    width    = HistoryWebView.ActualHeight;
            string template = "var elements = document.getElementsByClassName('{{0}}');if (elements.length > 0){elements[0].style.width='{{1}}px';}";

            template = Utils.TransferTemplate(template);
            string script = string.Format(template, "wrapper_main", width);
            await HistoryWebView.InvokeScriptAsync("eval", new string[] { script });
        }
コード例 #5
0
 private void BackRequested(object sender, BackRequestedEventArgs e)
 {
     //返回主页面
     if (HistoryWebView.CanGoBack)
     {
         Loading.IsActive = true;
         Blur.Visibility  = Visibility.Visible;
         HistoryWebView.GoBack();
     }
     e.Handled = true;
 }
コード例 #6
0
        private void NewWindowRequested(WebView sender, WebViewNewWindowRequestedEventArgs args)
        {
            string Url = args.Uri.ToString();

            args.Handled = true;
            if (Url.Contains("v.qq.com") && (Url.Contains("cover") || Url.Contains("page")))
            {
                var CurrentFrame = Window.Current.Content as Frame;
                var MainPage     = CurrentFrame.Content as MainPage;
                MainPage.MainFrame.Navigate(typeof(VideoPlayer), Url);
            }
            else
            {
                HistoryWebView.Navigate(args.Uri);
            }
        }