PhoneGap中文网

标题: PhoneGap的使用 [打印本页]

作者: 猫爷    时间: 2014-1-27 19:07
标题: PhoneGap的使用
我在学习PhoneGap开发的时候遇到了一个问题,在学习到通讯录部分时,发现API无法正常使用。我所用的代码是官方给出的例子

<!DOCTYPE html>
<html>
<head>
<title>Contact Example</title>
<script src="phonegap.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">       

    // 等待加载PhoneGap       
    document.addEventListener("deviceready", onDeviceReady, false);       
    // PhoneGap加载完毕        function onDeviceReady()
    {        
        var myContact = navigator.service.contacts.create({"displayName": "Test User"});        
        myContact.gender = "male";        
        console.log("The contact, " + myContact.displayName + ", is of the " + myContact.gender + " gender");       
    }
</script>
</head>
<body>
<h1>Example</h1>
<p>Create Contact</p>
</body>
</html>

最初我使用的环境是ANDROID 4.4+PhoneGap 2.9.0 在LOGCAT中并没有出现响应的信息,后来将console.log("The contact, " + myContact.displayName + ", is of the " + myContact.gender + " gender");  这一句换成了alert("xxx");也并没有弹框,于是再看LOGCAT中的信息发现了一句:Unable to open asset URL: file:///android_asset/www/cordova_plugins.js后来考虑到可能是2.9.0版本不兼容4.4,于是又换了2.2版本的SDK,依然无法正常,运行之后在LOGCAT中没有出现红色的信息,但是依然无法使用通讯录,于是我又尝试了PHONEGAP中国上的另一个例子
<!DOCTYPE html>
<html>
<head>
<title>Contact Example</title>

<script src="phonegap.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">

// 等待加载PhoneGap
document.addEventListener("deviceready", onDeviceReady, false);

// PhoneGap加载完毕
function onDeviceReady() {

  // 从全部联系人中进行搜索
  var options = new ContactFindOptions();
  options.filter="";
  var filter = ["displayName","addresses"];
  navigator.service.contacts.find(filter, onSuccess, onError, options);
}

// onSuccess: 返回当前联系人结果集的快照
function onSuccess(contacts) {
  // 显示所有联系人的地址信息
  for (var i=0; i<contacts.length; i++) {
   for (var j=0; j<contacts.addresses.length; j++) {
    alert("Pref: " + contacts.addresses[j].pref + "\n" +
     "Type: " + contacts.addresses[j].type + "\n" +
     "Formatted: " + contacts.addresses[j].formatted + "\n" +
     "Street Address: "  + contacts.addresses[j].streetAddress + "\n" +
     "Locality: "  + contacts.addresses[j].locality + "\n" +
     "Region: "  + contacts.addresses[j].region + "\n" +
     "Postal Code: "  + contacts.addresses[j].postalCode + "\n" +
     "Country: "  + contacts.addresses[j].country);
   }
  }
}

// onError: 获取联系人结果集失败
function onError() {
  alert('onError!');
}

</script>
</head>
<body>
<h1>Example</h1>
<p>Find Contact</p>
</body>
</html>

之后依然没有什么效果,求管理大哥帮我一下

作者: 猫爷    时间: 2014-1-27 19:29
补充一下其实在运行的时候还有一处报错信息是TypeError: Result of expression 'navigator.service' [undefined] is not an object. at file:///android_asset/www/Index.html:17,不知道和我的问题有没有关系,因为之前使用PHONEGAP事件都正常因此感觉应该不是配置的错误
作者: 初来咋到    时间: 2014-1-28 10:42
新版本的cordova用的是navigator.contacts.create()创建联系人,不是navigator.service.contacts.create
作者: admin    时间: 2014-1-28 10:43
通通讯录.zip (2.64 KB, 下载次数: 23)

别人写的代码 你看看 希望对你有帮助


作者: 猫爷    时间: 2014-1-28 11:10
admin 发表于 2014-1-28 10:43
别人写的代码 你看看 希望对你有帮助

运行以后又出错了提示unfortunatly,test4 has stopped




欢迎光临 PhoneGap中文网 (http://bbs.phonegap100.com/) Powered by Discuz! X3.2