嗨Iam windows phone fresher。任何人都可以告诉我如何在Phonegap(windows mobile)的javascript中调用C#方法。谢谢。
我收到以下错误。
错误:“无法找到command :: MyCommand”。
这是我的代码Behind file
using System;
using System.Collections.Generic;
using System.Linq; using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.IO;
using System.Windows.Media.Imaging;
using System.Windows.Resources;
using WP7CordovaClassLib.Cordova.Commands;
namespace CSharpToJS
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private void GapBrowser_Loaded(object sender, RoutedEventArgs e)
{
}
}
namespace WP7GapClassLib.PhoneGap.Commands
{
public class MyCommand : BaseCommand
{
public void DoThis(string args)
{
// TODO:
}
}
}
}
这是我的Index.html文件:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, height=device-height, initial- scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Cordova WP7</title>
<link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8" />
<script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false);
// once the device ready event fires, you can safely do your thing! -jm
function onDeviceReady() {
document.getElementById("welcomeMsg").innerHTML += "Cordova is ready! version=" + window.device.cordova;
console.log("onDeviceReady. You should see this message in Visual Studio's output window.");
var args = { "message": "whatever" };
Cordova.exec(null, null, "MyCommand", "DoThis", args);
}
</script>
</head>
<body>
<h1>
Hello Cordova</h1>
<div id="welcomeMsg">
</div>
</body>
</html>
答案 0 :(得分:1)
您应该可以使用plugin architecture和PhoneGap.exec()
方法完成此操作。
在c#中创建一个继承自BaseCommand的类(您还必须使用此特定命名空间):
namespace WP7GapClassLib.PhoneGap.Commands
{
public class MyCommand : BaseCommand
{
public void DoThis(string args)
{
// TODO:
}
}
}
从Javascript调用此方法:
var args = {"message":"whatever"};
PhoneGap.exec(null, null, "MyCommand", "DoThis", args);
答案 1 :(得分:1)
您可以将Notify方法与ScriptNotify事件处理程序结合使用,详见以下博客文章: -
http://blogs.msdn.com/b/glengordon/archive/2011/11/21/phonegap-on-wp7-tip-2-script-interaction.aspx