เมื่อนำทางโดยใช้ webview ในแอป Windows Store ลิงก์ใด ๆ ที่พยายามเปิดในแท็บ / หน้าต่างใหม่หรือเปิดใน Internet Explorer จึงเป็นการดึงผู้ใช้ออกจากแอปของฉัน มีวิธีใดในการจัดการเหตุการณ์ลิงก์เพื่อบังคับให้ลิงก์เปิดในมุมมองปัจจุบันหรือวิธีเรียกใช้โค้ดเพื่อสร้างแท็บใหม่ภายในแอปของฉันเอง ฉันได้ดูไปรอบ ๆ แล้วและดูเหมือนจะไม่เห็นวิธีที่กำหนดไว้ในการทำเช่นนี้มากนัก
แท็บ Windows 8.1 และ Windows พร้อม webview
คำตอบ (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
ประการแรก คำตอบนี้จะเป็นวงวนไม่สิ้นสุด นอกจากนี้ เหตุการณ์ NavigationStarting จะไม่เริ่มทำงานสำหรับองค์ประกอบ ‹a› ที่มีเป้าหมาย _blank
- person Khrimm; 29.03.2016