2014-10-01 97 views
0

我想從地址簿中訪問聯繫人的照片並將其顯示在HTML中。如何檢索地址簿聯繫人照片並在WebView中顯示它?

我的應用程序是基於IBM工作燈,它採用科爾多瓦,因此應用程序是基於HTML,CSS和JS。
我設法顯示通訊錄中的整個聯繫人列表。但是,我不知道如何加載聯繫人照片。

我可以加載聯繫人的照片在本地,與Base64Encoded 字符串進行編碼,並將其傳遞到HTML。但是,這種方法看起來非常討厭。 如果用戶擁有200個聯繫人,應用程序肯定會崩潰 。

我只是想通過使用接觸式ID就像我們通常在原生Android應用做加載HTML從每個聯繫人的聯繫人照片。

謝謝。

+0

它會b如果你還提到你是如何按原樣添加聯繫人的話,這會更容易。 – 2014-10-01 09:01:46

+0

我所做的是,我從JavaScript調用本機函數來獲取聯繫人列表。並在html中顯示列表。本機端將聯繫人數據發送給javascript。 你的第一個鏈接建議直接從javascript訪問地址簿。我如何在我的Worklight項目中使用「Cordova-Plugin-Contacts」?我已經有了CordovaPlugin的子類。我需要替換嗎?我可以在單個項目中使用多個CordovaPlugin嗎? – 2014-10-01 09:42:58

回答

2

在Worklight 6.2中使用下面的代碼,我在全名中搜索了我的地址簿中所有帶有「Adar」的聯繫人,並在HTML中插入了他們的全名和照片。

這在iOS版進行了測試,但應工作同樣爲Android。您可能需要增加以下權限在android系統\本地\ AndroidManifest.xml中:

<uses-permission android:name="android.permission.READ_CONTACTS" /> 


HTML:共同\ index.html在

<div id="contacts"> 
</div> 

的JavaScript BODY標籤:內容共同\ js \ main.js

function wlCommonInit(){ 
    var options  = new ContactFindOptions(); 
    options.filter = "Adar"; 
    options.multiple = true; 

    var fields = ["name","photos"]; 

    navigator.contacts.find(fields, onSuccess, onError, options); 
} 

function onSuccess(contacts) { 
    for (var i = 0; i < contacts.length; i++) { 
     $("#contacts").append(
      "<p><b>Contact name: </b>" + contacts[i].name.formatted + "</p><br/>" + 
      "<img src=" + contacts[i].photos[0].value + "/><br/><br/>" 
     ); 
    } 
}; 

function onError(contactError) { 
    alert('onError'); 
}; 
+0

謝謝你,伊丹。將嘗試,並讓你知道它是否有效。 – 2014-10-13 05:37:47

相關問題