rename jsbridge

This commit is contained in:
Lightczx
2023-11-09 11:51:56 +08:00
parent d529b3cea6
commit e833578334
8 changed files with 20 additions and 25 deletions

View File

@@ -9,7 +9,7 @@ namespace Snap.Hutao.View.Control;
internal interface IWebViewerSource
{
MiHoYoJSInterface CreateJsInterface(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid);
MiHoYoJSBridge CreateJSBridge(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid);
string GetSource(UserAndUid userAndUid);
}

View File

@@ -12,9 +12,9 @@ namespace Snap.Hutao.View.Control;
[DependencyProperty("OverseaSource", typeof(string))]
internal sealed partial class StaticWebview2ViewerSource : DependencyObject, IWebViewerSource
{
public MiHoYoJSInterface CreateJsInterface(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid)
public MiHoYoJSBridge CreateJSBridge(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid)
{
return serviceProvider.CreateInstance<MiHoYoJSInterface>(coreWebView2, userAndUid);
return serviceProvider.CreateInstance<MiHoYoJSBridge>(coreWebView2, userAndUid);
}
public string GetSource(UserAndUid userAndUid)

View File

@@ -25,7 +25,7 @@ internal partial class WebViewer : UserControl, IRecipient<UserChangedMessage>
private readonly RoutedEventHandler loadEventHandler;
private readonly TypedEventHandler<CoreWebView2, object> documentTitleChangedEventHander;
private MiHoYoJSInterface? jsInterface;
private MiHoYoJSBridge? jsBridge;
private bool isInitializingOrInitialized;
public WebViewer()
@@ -129,8 +129,8 @@ internal partial class WebViewer : UserControl, IRecipient<UserChangedMessage>
coreWebView2
.SetCookie(user.CookieToken, user.LToken, userAndUid.IsOversea)
.SetMobileUserAgent(userAndUid.IsOversea);
jsInterface?.Detach();
jsInterface = SourceProvider.CreateJsInterface(serviceProvider, coreWebView2, userAndUid);
jsBridge?.Detach();
jsBridge = SourceProvider.CreateJSBridge(serviceProvider, coreWebView2, userAndUid);
await navigator.NavigateAsync(source).ConfigureAwait(true);
}

View File

@@ -11,9 +11,9 @@ namespace Snap.Hutao.ViewModel.DailyNote;
internal sealed class DailyNoteWebViewerSource : IWebViewerSource
{
public MiHoYoJSInterface CreateJsInterface(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid)
public MiHoYoJSBridge CreateJSBridge(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid)
{
return serviceProvider.CreateInstance<MiHoYoJSInterface>(coreWebView2, userAndUid);
return serviceProvider.CreateInstance<MiHoYoJSBridge>(coreWebView2, userAndUid);
}
public string GetSource(UserAndUid userAndUid)

View File

@@ -10,11 +10,11 @@ namespace Snap.Hutao.ViewModel.User;
internal sealed class SignInWebViewerSouce : DependencyObject, IWebViewerSource
{
public MiHoYoJSInterface CreateJsInterface(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid)
public MiHoYoJSBridge CreateJSBridge(IServiceProvider serviceProvider, CoreWebView2 coreWebView2, UserAndUid userAndUid)
{
return userAndUid.User.IsOversea
? serviceProvider.CreateInstance<SignInJSInterfaceOversea>(coreWebView2, userAndUid)
: serviceProvider.CreateInstance<SignInJSInterface>(coreWebView2, userAndUid);
? serviceProvider.CreateInstance<SignInJSBridgeOversea>(coreWebView2, userAndUid)
: serviceProvider.CreateInstance<SignInJSBridge>(coreWebView2, userAndUid);
}
public string GetSource(UserAndUid userAndUid)

View File

@@ -24,7 +24,7 @@ namespace Snap.Hutao.Web.Bridge;
[HighQuality]
[SuppressMessage("", "CA1001")]
[SuppressMessage("", "CA1308")]
internal class MiHoYoJSInterface
internal class MiHoYoJSBridge
{
private const string InitializeJsInterfaceScript2 = """
window.MiHoYoJSInterface = {
@@ -45,7 +45,7 @@ internal class MiHoYoJSInterface
private readonly IServiceProvider serviceProvider;
private readonly ITaskContext taskContext;
private readonly ILogger<MiHoYoJSInterface> logger;
private readonly ILogger<MiHoYoJSBridge> logger;
private readonly TypedEventHandler<CoreWebView2, CoreWebView2WebMessageReceivedEventArgs> webMessageReceivedEventHandler;
private readonly TypedEventHandler<CoreWebView2, CoreWebView2DOMContentLoadedEventArgs> domContentLoadedEventHandler;
@@ -53,7 +53,7 @@ internal class MiHoYoJSInterface
private CoreWebView2 coreWebView2;
public MiHoYoJSInterface(CoreWebView2 coreWebView2, UserAndUid userAndUid)
public MiHoYoJSBridge(CoreWebView2 coreWebView2, UserAndUid userAndUid)
{
// 由于Webview2 的作用域特殊性,我们在此处直接使用根服务
serviceProvider = Ioc.Default;
@@ -61,7 +61,7 @@ internal class MiHoYoJSInterface
this.userAndUid = userAndUid;
taskContext = serviceProvider.GetRequiredService<ITaskContext>();
logger = serviceProvider.GetRequiredService<ILogger<MiHoYoJSInterface>>();
logger = serviceProvider.GetRequiredService<ILogger<MiHoYoJSBridge>>();
webMessageReceivedEventHandler = OnWebMessageReceived;
domContentLoadedEventHandler = OnDOMContentLoaded;

View File

@@ -12,10 +12,9 @@ namespace Snap.Hutao.Web.Bridge;
/// 签到页面JS桥
/// </summary>
[HighQuality]
internal sealed class SignInJSInterface : MiHoYoJSInterface
internal sealed class SignInJSBridge : MiHoYoJSBridge
{
/// <inheritdoc cref="MiHoYoJSInterface(IServiceProvider, CoreWebView2)"/>
public SignInJSInterface(CoreWebView2 webView, IServiceProvider serviceProvider, UserAndUid userAndUid)
public SignInJSBridge(CoreWebView2 webView, UserAndUid userAndUid)
: base(webView, userAndUid)
{
}

View File

@@ -12,7 +12,7 @@ namespace Snap.Hutao.Web.Bridge;
/// HoYoLAB 签到页面JS桥
/// </summary>
[HighQuality]
internal sealed class SignInJSInterfaceOversea : MiHoYoJSInterface
internal sealed class SignInJSBridgeOversea : MiHoYoJSBridge
{
// 移除 请旋转手机 提示所在的HTML元素
private const string RemoveRotationWarningScript = """
@@ -20,13 +20,9 @@ internal sealed class SignInJSInterfaceOversea : MiHoYoJSInterface
landscape.remove();
""";
private readonly ILogger<MiHoYoJSInterface> logger;
/// <inheritdoc cref="MiHoYoJSInterface(IServiceProvider, CoreWebView2)"/>
public SignInJSInterfaceOversea(CoreWebView2 webView, IServiceProvider serviceProvider, UserAndUid userAndUid)
public SignInJSBridgeOversea(CoreWebView2 webView, UserAndUid userAndUid)
: base(webView, userAndUid)
{
logger = serviceProvider.GetRequiredService<ILogger<MiHoYoJSInterface>>();
}
protected override void GetHttpRequestHeaderCore(Dictionary<string, string> headers)
@@ -36,6 +32,6 @@ internal sealed class SignInJSInterfaceOversea : MiHoYoJSInterface
protected override void DOMContentLoaded(CoreWebView2 coreWebView2)
{
coreWebView2.ExecuteScriptAsync(RemoveRotationWarningScript).AsTask().SafeForget(logger);
coreWebView2.ExecuteScriptAsync(RemoveRotationWarningScript).AsTask().SafeForget();
}
}