企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
http://ask.dcloud.net.cn/article/114 Native.js虽然强大和开放,但很多web开发者因为不熟悉原生API而难以独立完成。 这篇帖子的目的就是汇总各种写好的NJS代码,方便web开发者。 众人拾柴火焰高,有能力的开发者多多提交NJS代码,大家都会给你点赞的,我们也会为每位共享NJS代码的朋友送上200积分。 Android平台 在桌面创建和删除App快捷方式 见Hello H5+里Native.js部分演示及源码。 或在这里搜索“快捷方式”,http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/88 调用Android本地分享 http://ask.dcloud.net.cn/article/134 直接拨打电话 http://ask.dcloud.net.cn/question/4035 将程序切换到后台 http://ask.dcloud.net.cn/question/2484 强制弹出软键盘 http://ask.dcloud.net.cn/question/2324 获取安卓设备device.uuid http://ask.dcloud.net.cn/question/3510 获取内存及CPU信息 http://ask.dcloud.net.cn/question/2202 开启关闭蓝牙 http://ask.dcloud.net.cn/question/4720 监听蓝牙开关状态 http://ask.dcloud.net.cn/article/274 获取蓝牙设备列表 http://ask.dcloud.net.cn/question/8265 NFC数据读取 http://ask.dcloud.net.cn/question/6726 截屏 http://ask.dcloud.net.cn/question/5344 获取MAC地址 http://ask.dcloud.net.cn/question/1511 打开网络设置 http://ask.dcloud.net.cn/question/1475 打开位置信息 http://ask.dcloud.net.cn/question/14731 获取WIFI列表 http://ask.dcloud.net.cn/question/12113 调用系统控件播放视频 http://ask.dcloud.net.cn/question/614 调用os通讯录选择控件 http://ask.dcloud.net.cn/question/5783 原生日历提醒插入 http://ask.dcloud.net.cn/article/215 调用系统控件裁剪图片 http://ask.dcloud.net.cn/question/8314 复制内容到系统粘贴板 http://ask.dcloud.net.cn/question/2034 调用讯飞的文字转语音功能(TTS) http://ask.dcloud.net.cn/question/6473 调用其它Activity后通过startActivityForResult获取返回结果 http://ask.dcloud.net.cn/question/5783 接收系统广播消息,如监听安装卸载apk的事件 http://ask.dcloud.net.cn/article/222 判断app是否安装 http://ask.dcloud.net.cn/question/7604 以监听手机飞行模式开关为例说明如何使用Native.js进行BroadcastReceiver广播 http://ask.dcloud.net.cn/question/7661 常驻Android通知栏,不用个推实现本地消息推送(Local Notification) http://ask.dcloud.net.cn/question/2464 调用原生的socket连接 http://ask.dcloud.net.cn/question/60 启动一个原生service http://ask.dcloud.net.cn/question/433 停止、开启个推推送功能 ~~~ var pushManager = plus.android.importClass("com.igexin.sdk.PushManager"); var context = plus.android.runtimeMainActivity(); function enable() { pushManager.getInstance().turnOnPush(context); } function disable() { pushManager.getInstance().turnOffPush(context); } ~~~ 感谢yeahcheung分享 利用native.js获取手机gps是否开启 http://ask.dcloud.net.cn/question/11890 通过native.js设置系统墙纸 http://ask.dcloud.net.cn/article/651 iOS平台 获取包名 ~~~ var NSBundle = plus.ios.importClass('NSBundle'); var bundle = NSBundle.mainBundle(); console.log(bundle.bundleIdentifier()); plus.ios.deleteObject(bundle); ~~~ 获取设备名 http://ask.dcloud.net.cn/question/14691 测试是否安装某应用 http://ask.dcloud.net.cn/question/14430 调用iOS打印API http://ask.dcloud.net.cn/question/4226 通过native.js登入game center 见Hello H5+里Native.js部分演示及源码。 或在这里搜索“game center”,http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/88 设置获取内容到系统粘贴板 http://ask.dcloud.net.cn/question/3720 打开页面默认弹出键盘 http://ask.dcloud.net.cn/question/2324 播放提示音 http://ask.dcloud.net.cn/question/3962 调用ios的文字转语音(TTS) http://ask.dcloud.net.cn/question/4175 把base64数据保存为图片 http://ask.dcloud.net.cn/question/6190 设置webview滑动减速度 ~~~ var webview = plus.ios.currentWebview(); var scrollView = webview.plusGetAttribute("scrollView"); scrollView.plusSetAttribute("decelerationRate:",0.99); ~~~ 打开ios的Wifi设置页面 http://ask.dcloud.net.cn/question/7797 判断是否开启消息通知 http://ask.dcloud.net.cn/question/4497 检测iOS是否允许使用相机(感谢小闹分享) http://ask.dcloud.net.cn/article/188 ios获取系统的时区id ~~~ var NSTimeZone = plus.ios.importClass("NSTimeZone"); var sys = NSTimeZone.systemTimeZone(); console.log(sys.plusGetAttribute("name")); ~~~ 状态栏显示网络请求雪花 ~~~ var UIApplication = plus.ios.import("UIApplication"); var sharedApplication = UIApplication.sharedApplication(); sharedApplication.setNetworkActivityIndicatorVisible(true); plus.ios.deleteObject(sharedApplication); ~~~ 获取GPS授权状态 ~~~ var CLLocationManager = plus.ios.import("CLLocationManager"); var authorizationStatus = CLLocationManager.authorizationStatus(); switch(authorizationStatus) { case 0: /// User has not yet made a choice with regards to this application break; case 1: // This application is not authorized to use location services. Due // to active restrictions on location services, the user cannot change // this status, and may not have personally denied authorization break; case 2: // User has explicitly denied authorization for this application, or // location services are disabled in Settings. break; case 3: // User has granted authorization to use their location at any time, // including monitoring for regions, visits, or significant location changes. break; case 4: // User has granted authorization to use their location only when your app // is visible to them (it will be made visible to them if you continue to // receive location updates while in the background). Authorization to use // launch APIs has not been granted. break; case 5: // This value is deprecated, but was equivalent to the new -Always value. break; defalut: break; } ~~~ 获取手机存储空间 ~~~ var BundleClass = plus.ios.importClass("NSBundle"); var BundleObj = BundleClass.mainBundle(); var filenamagerobj = plus.ios.newObject("NSFileManager"); var FileAttr = plus.ios.invoke(filenamagerobj,"attributesOfFileSystemForPath:error:",BundleObj.bundlePath(),null); // NSFileSystemFreeSize 参数获取剩余空间 // NSFileSystemSize 获取手机总存储空间 var freeSpace = plus.ios.invoke(FileAttr,"objectForKey:","NSFileSystemFreeSize"); var numberFormatterObj = plus.ios.newObject("NSNumberFormatter"); var FreeSpaceStr = plus.ios.invoke(numberFormatterObj,"stringFromNumber:",freeSpace); var freeSpace = FreeSpaceStr / 1024/1024/1024; ~~~ 打开/关闭手机的闪光灯 ~~~ function turnonLight(isOn) { if(plus.os.name == "iOS") { var avcaptClass = plus.ios.importClass("AVCaptureDevice"); if(avcaptClass) { var device = avcaptClass.defaultDeviceWithMediaType("vide"); plus.ios.invoke(device, "lockForConfiguration:", null); if(isOn) { plus.ios.invoke(device, "setTorchMode:", 1); plus.ios.invoke(device, "setFlashMode:", 1); } else { plus.ios.invoke(device, "setTorchMode:", 0); plus.ios.invoke(device, "setFlashMode:", 0); } plus.ios.invoke(device, "unlockForConfiguration"); } } }; ~~~ 看完这些例子,是不是觉得JS特别强大? 赶快拿去用起来吧!