2012-12-27 111 views
0

我使用的WebWorks框架..当我运行在BB10开发阿尔法设备下面的代码,我得到倾斜的控制台日志中找到恢复变量开发一个应用程序为黑莓10操作系统 。我的html文件包含一个bbui按钮,并在onclick 函数恢复被调用。 javascript代码张贴如下。黑莓10 WebWorks的JavaScript错误

 var text="FN: Mohammed;Shinoys\n"; 
     var a=new Array(); 

     a=["N","FN","NICKNAME","TEL;CELL", 
      "TEL;TYPE=CELL","TEL;HOME","TEL;TYPE=HOME", 
      "EMAIL;HOME","EMAIL;TYPE=HOME","EMAIL;WORK", 
      "EMAIL;TYPE=WORK","ADR;HOME","ADR;TYPE=HOME", 
      "LABEL;HOME","LABEL;TYPE=HOME","ADR;WORK", 
      "ADR;TYPE=WORK","LABEL;WORK","LABEL;TYPE=WORK","NOTE","ORG","TITLE"]; 

     function restore() 
     { 
     var contacts = blackberry.pim.contacts; 
     var contactAddress = contacts.ContactAddress; 
     var contactField = contacts.ContactField; 
     var name = new Object(); 
     var ename; 
     var bb= new Object(); 
     var tt= new Object(); 
     var textarray=new Array(); 
     var arr=new Array(); 
     var s=new Array(); 
     var str,check,string; 
     var textarray2=new Array(); 
     var newcontact = new Object(); 
     console.log("entered function"); 
     newcontact=contacts.create({name:{givenName:"Hello",familyName:"World"}}); 
     console.log("NEWCONTACT: " + newcontact.ContactName.givenName); 

     for(var k=0;k<a.length;k++) 
     { 
      str=a[k]; 
      check=text.match(RegExp("^"+str+":","i")); 
      if(check===null) 
      continue; 
     //alert(check); 
      console.log(str); 
      string=text.replace(RegExp("^"+str+":","i"),""); 
      console.log("string"+string); 

      switch(k) 
      {case 0 : 
         arr=string.split(";"); 
         console.log("name "+arr); 
         newcontact.ContactName.familyName=arr[0]; 
         newcontact.ContactName.givenName=arr[1]; 
         break; 
      case 1 : console.log("ASDADAD"); 
         newcontact.ContactName.formatted=string; 
         console.log("FULL name "+arr); 
         ename=string; 
         break; 
      case 2 : newcontact.ContactName.phoneticGivenName=string; 
         break; 
      case 3 : 
         case 4 : tt={type:contactField.MOBILE,value:string}; 
         newcontact.phoneNumbers[newcontact.phoneNumbers.length]=tt; 
         break; 
       case 5 : 
       case 6 : tt={type:contactField.HOME,value:string}; 
         newcontact.phoneNumbers[newcontact.phoneNumbers.length]=tt; 
         break; 
       case 7 : 
       case 8 : tt={type:contactField.HOME,value:string}; 
         newcontact.emails[newcontact.emails.length]=tt; 
         break; 
       case 9 : 
       case 10 : tt={type:contactField.WORK , value:string}; 
         newcontact.emails[newcontact.emails.length]=tt; 
         break; 
       case 11 : 
       case 12 : s=string.split(";"); 
         bb={type:contactAddress.HOME,streetAddress:s[2],locality:s[3],region:s[4],postalCode:s[5],country:s[6]}; 
         newcontact.addresses[newcontact.addresses.length]=bb; 
         break; 
       case 13 : 
       case 14 : if(newcontact.addresses[0].type===contactAddress.HOME) 
         newcontact.addresses[0].formatted=string; 
         if(newcontact.addresses[1].type===contactAddress.HOME) 
         newcontact.addresses[1].formatted=string; 
         break; 
       case 15 : 
       case 16 : s=string.split(";"); 
         bb={type:contactAddress.HOME,streetAddress:s[2],locality:s[3],region:s[4],postalCode:s[5],country:s[6]}; 
         newcontact.addresses[newcontact.addresses.length]=bb; 
         break; 
       case 17 : 
       case 18 :if(newcontact.addresses[0].type===contactAddress.WORK) 
         newcontact.addresses[0].formatted=string; 
         if(newcontact.addresses[1].type===contactAddress.WORK) 
         newcontact.addresses[1].formatted=string; 
         break; 
       case 19 :newcontact.note=string; 
         break; 
       case 20 :newcontact.organizations[0]={name:string}; 
         str=a[k+1]; 
         check=text.match(RegExp("^"+str,"i")); 
         if(check!==null) 
         {string=text.replace("^"+str+":",""); 
         newcontact.organizations[0]={title:string}; 
         } 
         break; 
      } 

     } 
      newcontact.save(onSaveSuccess,onSaveError); 
     } 

     function onSaveSuccess(contact) { 
      alert("Contact saved: " + contact.name.givenName); 
     } 
     function onSaveError(error) { 
      alert("Contact : save failed: " + error.code); 
     } 

任何帮助表示赞赏。 关注shinoys222

+0

是否有更简单的情况下您可以发布?这段代码很难遵循。一些建议: 1.保持代码示例简明扼要 2.仅发布需要了解您的问题的代码片段 3.添加控制台日志的错误输出 4.提供有关错误的任何其他详细信息;例如,您是否能够在设备模拟器中或仅在设备中看到此错误等。 通常,代码示例越详细,越清晰,获得答案的机会就越好:) – zealoushacker

回答

0

从问题描述中可以看出,如果页面找不到还原函数,那就意味着这段JavaScript代码没有正确加载。建议您检查以确保您正确地从屏幕上引用JS文件,如下所示:

<div data-bb-type="screen" data-bb-indicator="true"> 
    <script id="myJS" src="js/my.js"></script> 

</div>