Windows phone 7 自定义Cordova插件
我正在尝试为Cordova 2.0.0编写一个自定义插件。 我想制作的自定义插件必须获得WP强调色,这样我就可以在应用程序样式中使用它 但我无法使它正常工作,也无法找出我做错了什么 Index.jsWindows phone 7 自定义Cordova插件,windows-phone-7,cordova,phonegap-plugins,cordova-2.0.0,Windows Phone 7,Cordova,Phonegap Plugins,Cordova 2.0.0,我正在尝试为Cordova 2.0.0编写一个自定义插件。 我想制作的自定义插件必须获得WP强调色,这样我就可以在应用程序样式中使用它 但我无法使它正常工作,也无法找出我做错了什么 Index.js function onDeviceReady() { click(); } function click() { navigator.notification.alert(callback, callback, "text", "button"); window.getAcc
function onDeviceReady() {
click();
}
function click() {
navigator.notification.alert(callback, callback, "text", "button");
window.getAccentColor();
}
namespace Cordova.Extension.Commands
{
// Use the phonegap base class
public class GetTheme : BaseCommand
{
public void Get()
{
Color currentColorHex = (Color)Application.Current.Resources["PhoneAccentColor"];
var result = new PluginResult(PluginResult.Status.OK, currentColorHex.ToString());
DispatchCommandResult(result);
}
}
}
window.getAccentColor = function () {
cordova.exec(win, error, "GetTheme", "Get");
}
function win(result) {
console.log(result);
console.log("2");
};
function error() {
}
GetTheme.cs
function onDeviceReady() {
click();
}
function click() {
navigator.notification.alert(callback, callback, "text", "button");
window.getAccentColor();
}
namespace Cordova.Extension.Commands
{
// Use the phonegap base class
public class GetTheme : BaseCommand
{
public void Get()
{
Color currentColorHex = (Color)Application.Current.Resources["PhoneAccentColor"];
var result = new PluginResult(PluginResult.Status.OK, currentColorHex.ToString());
DispatchCommandResult(result);
}
}
}
window.getAccentColor = function () {
cordova.exec(win, error, "GetTheme", "Get");
}
function win(result) {
console.log(result);
console.log("2");
};
function error() {
}
GetTheme.js
function onDeviceReady() {
click();
}
function click() {
navigator.notification.alert(callback, callback, "text", "button");
window.getAccentColor();
}
namespace Cordova.Extension.Commands
{
// Use the phonegap base class
public class GetTheme : BaseCommand
{
public void Get()
{
Color currentColorHex = (Color)Application.Current.Resources["PhoneAccentColor"];
var result = new PluginResult(PluginResult.Status.OK, currentColorHex.ToString());
DispatchCommandResult(result);
}
}
}
window.getAccentColor = function () {
cordova.exec(win, error, "GetTheme", "Get");
}
function win(result) {
console.log(result);
console.log("2");
};
function error() {
}
我注意到有些事情有点奇怪。
通过单击弹出的通知,输出中将写入操作“2”。但是如果没有它,它不会输出任何东西
在这两种情况下,win
函数的result
仍然为空,不输出任何内容
所有*.js文件都包含在head部分的index.html
文件中。
通知中的回调方法已定义,但它不执行任何操作
我还尝试了WP7CordovaClassLib.Cordova.Commands
名称空间。来自
所以,在你的GetTheme.cs中,改变
public void Get()
进入
找到这些问题的答案将帮助你(和我们)理解为什么你的插件没有被调用
- 有人叫onDeviceReady吗李>
- 正在呼叫click吗
- 这对我来说是陌生的“navigator.notification.alert(回调,
回叫,“文本”,“按钮”);“那该怎么办?” - VS.NET的输出窗口是否显示任何JS错误
阻止其余的js执行
- 这个插件的C#部分看起来与我的插件完全相同,所以我认为它很好
但是javascript部分不同。这是我完整的plugin.js(在Windows Phone上启动创建新短信任务的非常简单的插件,因为它不响应短信导航:方案类似于iOS和Android)
在我的字典里我有
if (window.device && window.device.platform == "WinCE") {
SMSComposer.install();
}
我用的是Cordova 2.0。
确保您正在检查控制台中的日志消息。如果Cordova在某个地方出现故障,则会记录一些信息。感谢您的回答,但不幸的是,它没有帮助。我删除了一些无用的测试代码,我注意到我的插件甚至没有被调用。为了回答您的问题:-onDeviceReady被调用-click被调用-
navigator.notification.alert()
显示WP7样式的确认-在VS.NET或JS中没有显示错误,我尝试了插件的不同位置,但仍然没有结果。我已经设法通过编辑和现有的插件使它工作。PhoneGap网站上的例子有很多不同之处。我看到如果插件名称中存在名称空间问题,我的插件不会被调用,即cordova exec的第三个参数是错误的。我还看到,如果cordova exec的options参数(第5个参数)没有值或提供的值不正确,我的插件就不会被调用。