2015-04-29 85 views
0

我正在使用科尔多瓦3.6.3。
我正在使用以下SMS插件。科尔多瓦短信插件 - javascript错误

http://plugins.cordova.io/#/package/com.rjfun.cordova.sms https://github.com/floatinghotpot/cordova-plugin-sms/tree/master/docs

我在下面的方式添加插件: -
科尔多瓦插件添加com.rjfun.cordova.sms

我科尔多瓦的应用程序加载时调用下面的函数doc_onload()。

<body onload="doc_onload()"> 

然后,这个注册“deviceready”的处理程序。当设备准备好时,这个设备就绪功能被调用。

现在initApp()处理程序中的问题是SMS插件检查不显示任何警报消息。 我能够获得警报 - >“kk”。

但在下面的检查if (! SMS)我没有得到任何显示消息。 if nor else都不满意。

即使alert("end");不会显示在initApp()事件处理程序中。

请提出为什么它失败?

function initApp() 
{ 
    alert("initApp"); 
    // attach Fastclick handler 
    FastClick.attach(document.body); 

    alert("kk"); 

    if (! SMS) 
    { 
     alert('SMS plugin not ready'); 
     return; 
    } 
    else 
    { 
     alert('SMS plugin Ok '); 
    } 

    alert("end"); 

    //add SMS arrive listner handler 
    document.addEventListener("onSMSArrive", processSMS(), false); 


} 

//function doc_onload(page_type) 
function doc_onload() 
{ 

    // Do some task 
    alert("doc_onload"); 

    // add event handler for deviceready function 
    document.addEventListener("deviceready", initApp(), false); 

} 

回答

0

删除 'initApp()' 括号中

document.addEventListener( “deviceready”,initApp,FALSE);

编辑**以上仅仅是对语义

我认为你需要改变!短信

typeof SMS === 'undefined' 
+0

如果我删除从initApp()括号... initApp不叫在所有在cordova应用程序...但如果我添加括号这个事件处理程序在cordova应用程序中调用..你能建议为什么吗? – Katoch

+0

我用来得到一个警报输出: - alert('SMS插件未准备好'); – Katoch

+0

我已经在以下方式添加短信插件: - cordova插件添加com.rjfun.cordova.sms 但为什么对象SMS没有在cordova应用中定义? – Katoch