mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
rename jsbridge
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
@@ -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)
|
||||
{
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user