แท็บ Windows 8.1 และ Windows พร้อม webview

เมื่อนำทางโดยใช้ webview ในแอป Windows Store ลิงก์ใด ๆ ที่พยายามเปิดในแท็บ / หน้าต่างใหม่หรือเปิดใน Internet Explorer จึงเป็นการดึงผู้ใช้ออกจากแอปของฉัน มีวิธีใดในการจัดการเหตุการณ์ลิงก์เพื่อบังคับให้ลิงก์เปิดในมุมมองปัจจุบันหรือวิธีเรียกใช้โค้ดเพื่อสร้างแท็บใหม่ภายในแอปของฉันเอง ฉันได้ดูไปรอบ ๆ แล้วและดูเหมือนจะไม่เห็นวิธีที่กำหนดไว้ในการทำเช่นนี้มากนัก


person Carl Robinson    schedule 07.06.2014    source แหล่งที่มา


คำตอบ (1)


คุณสามารถเชื่อมต่อกับเหตุการณ์ "NavigationStarting" ของ WebView คุณสามารถยกเลิกการนำทางและออกใหม่จากภายในโค้ดของคุณเพื่อให้นำทางภายใน webview

ซามล์:

    <WebView NavigationStarting="WebView_NavigationStarting" />

รหัสข้างหลัง:

    private void WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
    {
        if (args.Uri != null)
        {
            args.Cancel = true;
            sender.Navigate(args.Uri);
        }
    }

แต่คุณจะสูญเสียความสามารถในการเปิดลิงก์ในหน้าต่างใหม่โดยสิ้นเชิง เนื่องจากคุณมีเพียง uri เท่านั้นในตัวจัดการเหตุการณ์ Uri จะเป็นโมฆะหากคุณใช้การดำเนินการ NavigateToString บน webview

person Kai Brummund    schedule 06.12.2014
comment
ประการแรก คำตอบนี้จะเป็นวงวนไม่สิ้นสุด นอกจากนี้ เหตุการณ์ NavigationStarting จะไม่เริ่มทำงานสำหรับองค์ประกอบ ‹a› ที่มีเป้าหมาย _blank - person Khrimm; 29.03.2016