Native.js示例匯總


Native.js雖然強大和開放,但很多web開發者因為不熟悉原生API而難以獨立完成。
這篇帖子的目的就是匯總各種寫好的NJS代碼,方便web開發者。
眾人拾柴火焰高,有能力的開發者多多提交NJS代碼,大家都會給你點贊的,我們也會為每位共享NJS代碼的朋友送上200積分。

Android平台

Android動態權限申請

https://ask.dcloud.net.cn/article/35861

監聽手機鎖屏,解鎖,開屏

http://ask.dcloud.net.cn/article/35205

直接撥打電話

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

藍牙連接票據打印機完整代碼

http://ask.dcloud.net.cn/article/643

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/article/773

打開網絡設置

http://ask.dcloud.net.cn/question/1475

打開各種系統設置界面

http://ask.dcloud.net.cn/question/14732

獲取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

基於native.js的文件系統管理功能實現

http://ask.dcloud.net.cn/article/809

打開閃光燈

http://ask.dcloud.net.cn/question/19379

停止、開啟個推推送功能

復制代碼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

監聽短信驗證碼

http://ask.dcloud.net.cn/article/676

限制手機錄像時間

http://ask.dcloud.net.cn/question/45756

Android監聽電話呼入呼出

http://ask.dcloud.net.cn/article/1006

Android6以上動態權限申請

https://ask.dcloud.net.cn/article/35091

通知欄下載進度條

https://ask.dcloud.net.cn/article/503

打開應用市場

https://ask.dcloud.net.cn/article/12753

iOS平台

如何判斷系統功能權限是否開啟及提示用戶開啟權限

https://ask.dcloud.net.cn/article/35915

獲取包名

復制代碼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
http://ask.dcloud.net.cn/article/35727

檢測iOS是否允許使用相機(感謝小鬧分享)

http://ask.dcloud.net.cn/article/188

打開應用市場

https://ask.dcloud.net.cn/article/12753

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"); } } }; 

顯示應用內的ViewController

復制代碼// NewViewController為應用內創建的原生的ViewController類名,所調用頁面的內容需要在原生代碼中完成 var newVCobj = plus.ios.newObject("NewViewController"); var UIApplicationClass = plus.ios.importClass("UIApplication"); var UIAppObj = UIApplicationClass.sharedApplication(); var del = plus.ios.invoke(UIAppObj,"delegate"); // 如果當前應用delegate對象包含UIWindow對象並且變量名命名為“window”可以這么寫, // 否則需要根據實際代碼情況修改 // 應用的delegate對象也可以添加一個返回UIViewController的方法 var appWindowObj = plus.ios.invoke(del,"window"); var appRootController = plus.ios.invoke(appWindowObj,"rootViewController"); plus.ios.invoke(appRootController,"presentViewController:animated:completion:",newVCobj,"YES",null); 

看完這些例子,是不是覺得JS特別強大?
趕快拿去用起來吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM