brokededed again
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
using RelayClient.Models;
|
||||
using WebSocketSharp;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Text.Json.Serialization.Metadata;
|
||||
|
||||
namespace RelayClient;
|
||||
|
||||
@@ -226,8 +228,7 @@ public partial class MainPage : ContentPage
|
||||
var answer = await ServerAPI.GetAnswerForChannelAsync(_currentChannelId);
|
||||
if (answer is not null)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(answer);
|
||||
await hybridWebView.EvaluateJavaScriptAsync($"window.AnswerCallback({json})");
|
||||
await AnswerCallback(answer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -476,10 +477,22 @@ public partial class MainPage : ContentPage
|
||||
}
|
||||
}
|
||||
|
||||
public async void AnswerCallback(RtcDescription answer)
|
||||
public async Task AnswerCallback(RtcDescription answer)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(answer);
|
||||
await hybridWebView.EvaluateJavaScriptAsync($"window.AnswerCallback({json})");
|
||||
string json = JsonSerializer.Serialize(answer);
|
||||
SafeSendRawToWebView("WriteRtcAnswer answered with: " + json);
|
||||
try
|
||||
{
|
||||
SafeSendRawToWebView("Pre");
|
||||
// await hybridWebView.InvokeJavaScriptAsync("CSharpCallTest", ["value from C#"], [HybridJSTypeString.Default.String]);
|
||||
// SafeSendRawToWebView("Mid");
|
||||
await hybridWebView.InvokeJavaScriptAsync("AnswerCallback", [json], [HybridJSTypeString.Default.String]);
|
||||
SafeSendRawToWebView("End");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
SafeSendRawToWebView("WriteRtcAnswer failed: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSendMessageButtonClicked(object sender, EventArgs e)
|
||||
@@ -568,4 +581,20 @@ public partial class MainPage : ContentPage
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(string))]
|
||||
internal partial class HybridJSTypeString : JsonSerializerContext
|
||||
{
|
||||
// This type's attributes specify JSON serialization info to preserve type structure
|
||||
// for trimmed builds.
|
||||
}
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(RtcDescription))]
|
||||
internal partial class HybridJSTypeRtcDescription : JsonSerializerContext
|
||||
{
|
||||
// This type's attributes specify JSON serialization info to preserve type structure
|
||||
// for trimmed builds.
|
||||
}
|
||||
|
||||
}
|
||||
@@ -258,13 +258,21 @@ async function channelCallJoin(activeCall)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async function CSharpCallTest(value)
|
||||
{
|
||||
LogMessage("Called from C#: " + value);
|
||||
}
|
||||
async function AnswerCallback(answer)
|
||||
{
|
||||
LogMessage("Answer: " + JSON.stringify(answer));
|
||||
LogMessage("Answer: " + answer);
|
||||
|
||||
if (!peerConnection.currentRemoteDescription && answer.answer)
|
||||
let callBack = JSON.parse(answer);
|
||||
LogMessage("Call Back: " + callBack);
|
||||
|
||||
if (!peerConnection.currentRemoteDescription && callBack)
|
||||
{
|
||||
LogMessage("Current answer: " + answer);
|
||||
LogMessage("Current answer: " + callBack);
|
||||
const desc = new RTCSessionDescription(answer);
|
||||
await peerConnection.setRemoteDescription(desc);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user