gpt4 book ai didi

android - 无法在 phonegap 中显示联系人数据图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:11:34 26 4
gpt4 key购买 nike

我正在尝试使用 PhoneGap for android 中的以下代码获取联系人个人资料图片,即联系人数据的头像但我得到了以下网址作为返回,我不知道我应该如何在 img 标签中显示它。

代码

  var defaultImagePath ='../resources/images/default_usr.png'

var img = contacts[i].photos != null ?
contacts[i].photos[0].value : defaultImagePath;

返回的url是

content://com.android.contacts/contacts/739/photo

现在,当最终在列表中时,我正尝试使用

显示它
<img src="content://com.android.contacts/contacts/739/photo"/>

但它没有显示任何内容?那么我将如何显示联系人图像?

我有最新的 PhoneGap 版本

我用过

window.resolveLocalFileSystemURI( contacts[i].photos[0].value , this.onResolveSuccess, this.fail);

但是我得到以下运行时错误

JNI ERROR (app bug): attempt to use stale local reference in phonegap

即使我在android中指定了以下权限

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />

更新

loadContacts:function(){



var arr = [];

var filter = ["displayName", "name", "phoneNumbers","emails","addresses","photos"];
var options = new ContactFindOptions();
options.filter="";
options.multiple=true;

navigator.contacts.find(filter,
function(contacts) {

for (var i = 0; i < contacts.length; i++) {
if (contacts[i].photos) {


for (var j = 0; j < contacts[i].photos.length; j++) {



returnValidPhoto(contacts[i].photos[j], function(answer) {

console.log(answer);

if(contacts[i].photos[j]!=null);
contacts[i].photos[j].value=answer;


});




var contactData = new ContactData("Name" ,
"09090909",
contacts[i].photos[j].value);

arr.push(contactData);




}
}

}
Ext.getStore('ContactStore').setData(arr);

// document.getElementById("contactdata").innerHTML = data;
}, function(err) {
alert(err);
},options);



}

这里是图像函数

 function returnValidPhoto(url,callback){

console.log("IMAGE CALLED");
var img = new Image();
img.onload = function() {
//Image is ok

console.log("IMAGE OK");

callback(url.value);
};
img.onerror = function(err) {
//Returning a default image for users without photo

console.log("IMAGE FAILED");

url.value = "/resources/images/default_usr.png";
callback("/resources/images/default_usr.png");
}
img.src = url.value;
};

最佳答案

请试试这个。

     function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
window.resolveLocalFileSystemURI("content://com.android.contacts/contacts/739/photo", onResolveSuccess, fail);
}

function onFileSystemSuccess(fileSystem) {
console.log(fileSystem.name);
}

function onResolveSuccess(fileEntry) {
console.log(fileEntry.name);
}

function fail(evt) {
console.log(evt.target.error.code);
}

关于android - 无法在 phonegap 中显示联系人数据图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18375033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com