Jason94
Jason94

Reputation: 13610

How can I inject javascript from C#?

I'm trying to invoke javascript from C# in my project, I want to call a javascript function that I've defined with parameters but I'm stuck on how to do it.

MainPage.xaml has this my:CordovaView that wraps my phonegap project, but I'm a little lost on how to "inject" and run javascript into it.

Has anyone done this? I'm trying to do push messages

Upvotes: 0

Views: 125

Answers (1)

Jason
Jason

Reputation: 15931

I haven't done this with cordova per se, but in general you just need to remember where the code is executing. The C# code is executing on the server, and the javascript is executing on the client, so, you want your C# to emit a value that can be consumed by the client.

The following javascript snippet is based on Razor engine syntax, hopefully it's enough to get you started.

function alertVar(someVal) {
  alert("JS, someVal = " + someVal);
}

$(document).ready(function() {
   // in this case the server interpolates @Model and returns HTML with the value replaced
   // wrap it in quotes so the js engine treats that value as a string
   // this method will then fire when the document loads
   alertVar("@Model.ServerValueForClient");
});

This is the html that that the server would send to the client after interpolation (assuming that somewhere on the server you set the value @Model.ServerValueForClient = "set by the server";)

$(document).ready(function() {
   // in this case the server interpolates @Model and returns HTML with the value replaced
   // wrap it in quotes so the js engine treats that value as a string
   // this method will then fire when the document loads
   alertVar("set by the server");
});

HTH

Upvotes: 1

Related Questions