思路:
1、js调用android的java代码
2、通过java代码访问通讯录
3、通过java代码访问js代码返回通讯录信息
代码:
1、js调用android的java代码
js代码:
window.ncp.callOnJs2("click")android代码,通过webview打开页面:
mWebview.getSettings().setJavaScriptEnabled(true)mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp")
final class JavaScriptInterface {
public int callOnJs() {
return 1000
}
public void callOnJs2(String mode) {
//TODO
}
}
2、通过java代码访问通讯录
/**得到手机通讯录联系人信息**/private void getPhoneContacts() {
ContentResolver resolver = mContext.getContentResolver()
// 获取手机联系人
Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null)
if (phoneCursor != null) {
while (phoneCursor.moveToNext()) {
//得到手机号码
String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX)
//当手机号码为空的或者为空字段 跳过当前循环
if (TextUtils.isEmpty(phoneNumber))
continue
//得到联系人名称
String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX)
//得到联系人ID
Long contactid = phoneCursor.getLong(PHONES_CONTACT_ID_INDEX)
//得到联系人头像ID
Long photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX)
//得到联系人头像Bitamp
Bitmap contactPhoto = null
//photoid 大于0 表示联系人有头像 如果没有给此人设置头像则给他一个默认的
if(photoid > 0 ) {
Uri uri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid)
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri)
contactPhoto = BitmapFactory.decodeStream(input)
}else {
contactPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.contact_photo)
}
mContactsName.add(contactName)
mContactsNumber.add(phoneNumber)
mContactsPhonto.add(contactPhoto)
}
phoneCursor.close()
}
3、通过java代码访问js代码返回通讯录信息
mWebView.loadUrl("javascript:onSaveCallback()")首先使用手机登录企业微信,你可以用微信号登录也能使用手机登录2/3
输入你的邮箱帐号来绑定企业,这个邮箱必须是你在企业绑定的邮箱,然后就可以进入你的公司页面了。
3/3
入到企业界面后,点击右上角的同步通讯录,然后就可以同步微信通讯录到你的企业微信了。