J'utilise le contrôle de navigateur WebKit dans mon application .net. Je suis également nouveau à JSON et ai peu de connaissance du manuscrit de Java. Mon est d'appeler une méthode C# méthode du code de script Java. Je sais qu'il existe une propriété "ObjectForScripting" avec le contrôle WebKit.Comment recevoir des données formées JSON en argument de méthode C#
Code C#: - Ce code est exécuté sur l'un des boutons. Lesquels injectent le script java dans la page HTML rendue.
Element scriptElm = browser.Document.CreateElement("script");
scriptElm.AppendChild(browser.Document.CreateTextNode("Test(['ABC','EFG'],{'name':'First Name','surname':'LastName'})"));
NodeList headElm = browser.Document.GetElementsByTagName("head");
headElm[0].AppendChild(scriptElm);
code ci-dessus ci-dessous appelle la méthode Java script de rendu page HTML.
code Java Script:
function Test(arg1,arg2)
{
document.write(arg2.name); // Printing correct i.e. Firstname
document.write(arg2); // Bad!!!! always print [Object object]
window.external.TestMethod(arg1,arg2); // Call method in C# code.
}
signature C# Méthode
public bool TestMethod(string obj1, String obj2)
{
MessageBox.Show(obj1.ToString());
MessageBox.Show(obj2.ToString());
return true;
}
donc dans la méthode de rappel ci-dessus, je ne suis pas en mesure d'obtenir second paramètre i.e.obj2 correctement. En C#. Je l'obtiens toujours en tant qu'objet. J'ai essayé de mettre cela à Object mais je n'ai pas travaillé. Comment dois-je le convertir au bon format?
Merci, Omky
Oui je l'ai trouvé !!!!! :) Je dois utiliser JSON.Stringify (arg2) et le passer du script à C#. Bien!!! Ensuite, j'ai besoin de reconvertir en objet en utilisant une bibliothèque JSON pour .NET. :) :) – Omkar
JSON.NET ou JavascriptSerializer –