Android_磊子
Android_磊子
  • 发布:2015-05-26 15:54
  • 更新:2020-02-22 01:17
  • 阅读:21697

Android调用系统通讯录控件,native.js实现监听startActivityForResult后返回结果

分类:Native.js

示例代码中选用获取联系人电话号码为例,同学们举一反三,扩展其他,代码如下:

复制代码var REQUESTCODE = 1000;  
main = plus.android.runtimeMainActivity();  
var Intent = plus.android.importClass('android.content.Intent');  
var ContactsContract = plus.android.importClass('android.provider.ContactsContract');  
var intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);  
main.onActivityResult = function(requestCode, resultCode, data) {   
  if (REQUESTCODE == requestCode) {  
    var phoneNumber = null;  
    var resultString = "";  
    var context = main;  
    plus.android.importClass(data);  
    var contactData = data.getData();  
    var resolver = context.getContentResolver();  
    plus.android.importClass(resolver);  
    var cursor = resolver.query(contactData, null, null, null, null);  
    plus.android.importClass(cursor);  
    cursor.moveToFirst();  
    var s_ret;  
    var givenName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));  
    s_ret = givenName;  
    var contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));  
    var pCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,  
     null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId,  
     null, null);  
    while (pCursor.moveToNext()) {  
     phoneNumber =   pCursor.getString( pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));  
     s_ret += '\n' + phoneNumber;  
    }  
    alert(s_ret);  
    cursor.close();  
    pCursor.close();  
  }  
};  
main.startActivityForResult(intent, REQUESTCODE);
2015-05-26 15:54 1 条评论 负责人:无 分享
已邀请:
木乃森

木乃森

很好,可以用,第一次调用有点慢,可以加loading效果。等待调用回来关闭loading,但是。。。。IOS咋弄呢

  • 9***@qq.com

    iOS的在这里:https://www.jianshu.com/p/b78b02d64472

    2018-11-21 14:18

5***@sina.com

5***@sina.com

这个代码假如用户没有批准权限的话,后面就用不起

wanZ

wanZ

学习了!

蔡繁荣

蔡繁荣 - 发表是最好的记忆

good job

chender

chender - 与人为善

学习了,原来通过nativejs可以重新java类里面的方法,当初就选取联系人这个问题还专门问过官方人员,但都没有解决

开心就好

开心就好

同问,ISO怎么搞?

露珠

露珠

请问iOS系统怎么写?

  • 9***@qq.com

    iOS的在这里:https://www.jianshu.com/p/b78b02d64472

    2018-11-21 14:19

  • 1***@qq.com

    回复 9***@qq.com: 我试了试你说的这个链接,有点bug,安卓的需要定义一下main这个变量,ios直接闪退,

    2019-07-23 10:11

  • 9***@qq.com

    回复 1***@qq.com: 之前uni-app上是存在问题,现在uni-app iOS闪退的问题已经解决了!安卓的在5++App上是没有问题的,uni-app我还没有试。谢谢你的反馈

    2019-11-04 15:19

地图

地图

顶楼主!同问iOS怎么搞?官方可以统一写个接口啊

  • DCloud_App_Array

    iOS可以通过url scheme相互调用进行APP间的通信,参考:http://ask.dcloud.net.cn/article/64

    2016-01-04 14:24

  • 9***@qq.com

    iOS的在这里:https://www.jianshu.com/p/b78b02d64472

    2018-11-21 14:19

Element

Element - 全栈工程师

膜拜大神

a***@163.com

a***@163.com

支持其他方法吗,keyup,keydown,ontouch

1***@qq.com

1***@qq.com

选择联系人后 怎么什么都没弹出来啊

cydida

cydida

请问iOS系统怎么写?

  • 9***@qq.com

    iOS的在这里:https://www.jianshu.com/p/b78b02d64472

    2018-11-21 14:19

7***@qq.com

7***@qq.com - 前端开发人员

ios找不到调原生的,只能获取到通讯录信息,自己再写个通讯录样式。

  • cydida

    这就尴尬了

    2017-09-11 09:54

  • 7***@qq.com

    样式嘛,自己弄简单点就好了,就名字和电话。要的就弄出来,不要的就不显示了。还是很快的

    2017-09-11 09:57

  • 9***@qq.com

    iOS的在这里:https://www.jianshu.com/p/b78b02d64472

    2018-11-21 14:19

6***@qq.com

6***@qq.com

能否一次,便利所有号码呀。

h***@163.com

h***@163.com

尼玛,IOS呢?IOS呢?IOS呢?IOS呢?IOS呢?IOS呢?IOS呢?IOS呢?IOS呢?IOS呢?IOS呢?

  • 9***@qq.com

    iOS的在这里:https://www.jianshu.com/p/b78b02d64472

    2018-11-21 14:19

9***@qq.com

9***@qq.com

通过Native.js 访问 iOS 原生通讯录界面,参考这里:
https://www.jianshu.com/p/b78b02d64472

2***@qq.com
4***@qq.com

4***@qq.com

为什么页面刚打开,onActivityResult就执行了,真正返回的时候,不执行,导致数据不能正常返回?求大神解答

该问题目前已经被锁定, 无法添加新回复

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容