[英]Xamarin Forms. Webview. Not injecting javascript
我正在尝试将 js 注入 webview。 我的目标是在加载的网站上注入自定义 js。 我使用以下代码将 javascript 注入到 xamarin forms 中的简单 webview 中。
XAML:
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:BrowserApp" x:Class="BrowserApp.Views.BrowserAppPage">
<StackLayout>
<StackLayout Orientation="Horizontal">
<Button Text="<" HeightRequest="40" WidthRequest="40" Clicked="Back_Clicked"/>
<Button Text=">" HeightRequest="40" WidthRequest="40" Clicked="Forward_Clicked"/>
<Entry x:Name="url" WidthRequest="180" />
<Button Text="Go" HeightRequest="40" WidthRequest="50" Clicked="Go_Clicked"/>
</StackLayout>
<Label x:Name="LoadingLabel" IsVisible="false"/>
<WebView x:Name="Browser" HeightRequest="1000" WidthRequest="1000" Navigating="Handle_Navigating" Navigated="Handle_Navigated"/>
</StackLayout>
</ContentPage>
XAML.CS:
using System.Threading.Tasks;
using Xamarin.Forms;
namespace BrowserApp.Views
{
public partial class BrowserAppPage : ContentPage
{
public async void Handle_Navigated(WebView sender, Xamarin.Forms.WebNavigatedEventArgs e)
{
await sender.EvaluateJavaScriptAsync("javascript:alert();");
LoadingLabel.IsVisible = false;
}
void Handle_Navigating(object sender, Xamarin.Forms.WebNavigatingEventArgs e)
{
LoadingLabel.IsVisible = true;
}
void Go_Clicked(object sender, System.EventArgs e)
{
Browser.Source = url.Text;
}
void Forward_Clicked(object sender, System.EventArgs e)
{
if (Browser.CanGoForward)
Browser.GoForward();
}
void Back_Clicked(object sender, System.EventArgs e)
{
if (Browser.CanGoBack)
Browser.GoBack();
}
public BrowserAppPage()
{
InitializeComponent();
url.Text = "https://google.com";
Browser.Source = url.Text;
}
}
}
不知何故,js没有被注入。 甚至一个简单的警报都不起作用。
编辑:我检查了 android 设备上的代码,而不是 UWP。 在 android 上它正在工作。 有没有办法为平台启用 javascript?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.