【问题标题】:VS2015 Cordova Sms Plugin Sms.Send doesn't work in Index.JS (ondeviceReady)VS2015 Cordova Sms 插件 Sms.Send 在 Index.JS 中不起作用(ondeviceReady)
【发布时间】:2015-12-10 08:00:11
【问题描述】:

我是 Cordova 的新手,我们将不胜感激。

我在 VS2015 中创建了一个新的 Cordova 项目,并将 Cordova SMS 插件添加到我的项目中 (https://www.npmjs.com/package/cordova-sms-plugin)。

我将此代码添加到 /www/scripts/index.js 函数 onDeviceReady(根据插件的文档):

function onDeviceReady() {
    // Handle the Cordova pause and resume events
    document.addEventListener( 'pause', onPause.bind( this ), false );
    document.addEventListener( 'resume', onResume.bind( this ), false );

    var numberString = "aoeuaeu";
    var bypassAppChooser = true; 

    //CONFIGURATION
    var options = {
        replaceLineBreaks: false,
        android: {
            intent: 'INTENT'  // send SMS with the native android SMS messaging
        }
    };

    var successSMS = function () { alert('Message sent successfully'); };
    var errorSMS = function (e) { alert('Message Failed:' + e); };
    sms.send("0811231234", "Testing123", options, successSMS, errorSMS);

我使用 Debug、Android、Ripple - Nexus (Galaxy) 选定选项调试项目。当我在 sms.send 代码行上放置一个断点并为“sms.send”添加一个监视时,我可以看到该对象存在。

当我单步执行时,sms.js 中的这一行似乎是执行的最后一行:

// fire
exec(
    success,
    failure,
    'Sms',
    'send', [phone, message, androidIntent, replaceLineBreaks]
);

然后我在 Ripple 中收到以下错误消息:

'Sms.send 我们似乎遗漏了一些东西 :(虽然您可以填写 textarea 以将 json 对象传递给您要执行的回调,但这有点酷)。'

我可以看到该行中的所有对象都已定义(成功、失败、电话、消息、androidIntent、replaceLineBreaks)。当我“进入”这一行时,它会继续执行ripple.js 中的代码,但对于一个人来说,这变得难以理解,因为该文件中没有换行符。

我做错了什么?我已经阅读了所有可以找到并搜索过 stackoverflow 问题的文档,但似乎找不到任何问题的解决方案。

我已经上传了整个项目(压缩),可以在以下位置下载: https://drive.google.com/file/d/0BwWgTMh-JLbfNHV0MlE5Yk5IZ3M/view?usp=sharing

提前致谢

【问题讨论】:

    标签: javascript android jquery cordova visual-studio-2015


    【解决方案1】:

    感谢 Microsoft 的 Cordova 团队帮助我解答:

    “Ripple 有能力模拟一些但不是所有的插件。SMS 不是它可以完全模拟的插件之一。但是,在弹出的消息中,你确实有能力点击 Success或失败按钮,这些按钮将向应用报告发送短信成功与否。虽然这实际上不会发送消息,但它可以让您测试您的应用以查看它在不同结果下的表现。 我尝试了您在第一封电子邮件中包含的一些示例代码。在 Ripple 中,我可以通过点击不同的按钮来更改警报。

    尝试其他部署方法,在 VS Android Emulator 和 Google Emulator 中,他们都显示了不支持 SMS 消息的失败警报消息。然后我在安卓手机设备上启动它,它说它成功了。

    所以我相信您的选择主要是使用 Ripple 来伪造发送消息或使用设备进行测试。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多