Native.JS

Native.JS

187 人关注该话题

uniapp ios如何获取WiFi列表啊 Native.JS WIFI uniapp

分类: uni-app z***@vip.163.com 2024-02-19 13:16  回复问题 • 7 人关注 • 7 个回复 • 4173 次浏览

native.js 获取android定位,onLocationChanged改变时候出错 Native.JS

分类: HTML5+ / Native.js 9***@qq.com 2024-01-23 16:14  发起问题 • 2 人关注 • 0 个回复 • 105 次浏览

请问Webview窗口native层实例如何设置Webview参数? Native.JS

分类: HTML5+ / Native.js 4***@qq.com 2024-01-08 13:14  发起问题 • 1 人关注 • 0 个回复 • 82 次浏览

HbuilderX云打包 无法获取 R.drawable下面的图片资源 HBuilderX 云打包 Native.JS Vue 通知 5 App开发

分类: HBuilderX 1***@163.com 2023-12-27 10:30  回复问题 • 1 人关注 • 3 个回复 • 84 次浏览

native.js文件管理系统 Native.JS

分类: HTML5+ / Native.js a***@163.com 2023-12-21 11:35  发起问题 • 1 人关注 • 0 个回复 • 107 次浏览

Native.js回调多参数支持(iOS) Native.JS

分类: HTML5+ / Native.js b***@163.com 2023-12-20 12:02  回复问题 • 3 人关注 • 3 个回复 • 880 次浏览

ios使用Native.JS调用本地tts代理崩溃 文字转语音 Native.JS TTS

分类: uni-app b***@163.com 2023-12-20 11:26  回复问题 • 2 人关注 • 3 个回复 • 839 次浏览

native js ios如何调用函数,不是方法 Native.JS uniapp

分类: uni-app 追影和糖糖 2023-10-31 11:24  发起问题 • 1 人关注 • 0 个回复 • 145 次浏览

使用native.js 获取不到正在连接的WIFI的状态 Native.JS uniapp

分类: HTML5+ 1***@qq.com 2023-10-28 15:12  发起问题 • 1 人关注 • 0 个回复 • 158 次浏览

ble蓝牙如何设置PHY Native.JS 蓝牙

分类: uni-app 1***@qq.com 2023-10-20 17:45  回复问题 • 4 人关注 • 3 个回复 • 1132 次浏览

NS实现控制移动端的网络 Native.JS

分类: HTML5+ / Native.js 凝傲剑秋 2023-09-22 09:27  发起问题 • 1 人关注 • 0 个回复 • 131 次浏览

更多...
3

赞同来自: 吃西瓜的花猫 Trust 4***@qq.com

我今天试了一下,可以建立Socket连接了,也能进行数据收发。js代码如下:
```javascript
function testSocket(){
if (plus.os.name == "Android") {
... 显示全部 »
我今天试了一下,可以建立Socket连接了,也能进行数据收发。js代码如下:
```javascript
function testSocket(){
if (plus.os.name == "Android") {
var Socket = plus.android.importClass("java.net.Socket");
var PrintWriter = plus.android.importClass("java.io.PrintWriter");
var BufferedWriter = plus.android.importClass("java.io.BufferedWriter");
var OutputStreamWriter = plus.android.importClass("java.io.OutputStreamWriter");
var BufferedReader = plus.android.importClass("java.io.BufferedReader");
var InputStreamReader = plus.android.importClass("java.io.InputStreamReader");

var socket = new Socket("192.168.23.8", 8080);

var outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
var bufferWriter = new BufferedWriter(outputStreamWriter);
var out = new PrintWriter(bufferWriter, true);
out.println("Conneted...");

var inputStreamReader = new InputStreamReader(socket.getInputStream());
var br = new BufferedReader(inputStreamReader);
var msg = br.readLine();

//while(true)
{
if(msg != null)
{
console.log(msg);
}
//msg = br.readLine();
}
}
//console.log(mac);
alert("Done");
}
```
0

赞同来自:

感谢分享,真机测试可运行。
“获取手机内存信息”方法代码有点问题,正确代码如下:
``` javascript
/*获取手机内存信息*/
function getMemorySize() {
var memoryInfo = '';
if (p... 显示全部 »
感谢分享,真机测试可运行。
“获取手机内存信息”方法代码有点问题,正确代码如下:
``` javascript
/*获取手机内存信息*/
function getMemorySize() {
var memoryInfo = '';
if (plus.os.name == "Android") {
var Context = plus.android.importClass("android.content.Context");
var ActivityManager = plus.android.importClass("android.app.ActivityManager");
var mi = new ActivityManager.MemoryInfo();
var activityService = plus.android.runtimeMainActivity().getSystemService(Context.ACTIVITY_SERVICE);
activityService.getMemoryInfo(mi);
memoryInfo = mi.plusGetAttribute("availMem");
}
return memoryInfo;
}
```
**旧版本HBuilder runtime获取属性值方法plusGetAttribute返回的值不正确,需要更新到最新版本**
3

赞同来自: DCloud_heavensoft DIOGO Trust

@DCloud_App_Array 這個示例代码分享給大家

這個問題就自行回答了 :P

HTML5+ API 的推送,請參考 [Push模块管理推送消息功能](http://dcloud.io/docs/api/zh_cn/push.shtml)
Dclo... 显示全部 »
@DCloud_App_Array 這個示例代码分享給大家

這個問題就自行回答了 :P

HTML5+ API 的推送,請參考 [Push模块管理推送消息功能](http://dcloud.io/docs/api/zh_cn/push.shtml)
Dcloud也集成了個推的功能,請參考 [推送插件配置](http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/92) 、 [推送插件开发指南](http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/34)

而原生的文檔,請參考谷歌的 [Notification](http://developer.android.com/reference/android/app/Notification.html) 、 [Notification.Builder](http://developer.android.com/reference/android/app/Notification.Builder.html) 、[NotificationManager](http://developer.android.com/reference/android/app/NotificationManager.html)

代碼如下,效果比較接近5+ 的Push
```javascript
var NotifyID = 1;
var Context = plus.android.importClass("android.content.Context");
var main = plus.android.runtimeMainActivity();
var Noti = plus.android.importClass("android.app.Notification");
var NotificationManager = plus.android.importClass("android.app.NotificationManager");
var nm = main.getSystemService(Context.NOTIFICATION_SERVICE)
var Notification = plus.android.importClass("android.app.Notification");
var mNotification = new Notification.Builder(main);
mNotification.setOngoing(true);
mNotification.setContentTitle("Hbuilder")
mNotification.setContentText("MUI & 5+ 大好!")
mNotification.setSmallIcon(17301620)
mNotification.setTicker("PadInfo")

mNotification.setNumber(10)
var mNb = mNotification.build()
nm.notify(NotifyID , mNb);
```

實際效果:
** 插入的附件 **

這個可以直接實現本地推送,固定在通知栏。
如果要可以从通知栏刪掉的,請去除掉 mNotification.setOngoing(true) 這行代碼即可
3

赞同来自: beckzl b***@163.com t***@qq.com

用Native.js可以实现此功能:
``` javascript
var main = plus.android.runtimeMainActivity();
main.moveTaskToBack(false);
```

**注意:请更新HBuild... 显示全部 »
用Native.js可以实现此功能:
``` javascript
var main = plus.android.runtimeMainActivity();
main.moveTaskToBack(false);
```

**注意:请更新HBuilder到5.2.0以上版本**
3

赞同来自: 蔡繁荣 泽西大少 FunnyKing

```javascript
var mainActivity = plus.android.runtimeMainActivity();
var Settings= plus.android.importClass("android.provid... 显示全部 »
```javascript
var mainActivity = plus.android.runtimeMainActivity();
var Settings= plus.android.importClass("android.provider.Settings");
console.log(Settings.Secure.getString(mainActivity.getContentResolver(),Settings.Secure.ANDROID_ID));
```

@DCloud_App_Array
0

赞同来自:

```javascript
var AVCaptureDevice = plus.ios.importClass("AVCaptureDevice");
var authStatus =AVCaptureDevice.authorizati... 显示全部 »
```javascript
var AVCaptureDevice = plus.ios.importClass("AVCaptureDevice");
var authStatus =AVCaptureDevice.authorizationStatusForMediaType ("vide");
```
3

赞同来自: 1***@qq.com 孟泽伟 1***@qq.com

向IOS同事请教,已解决该问题。
```javascript
var AVAudioSession = plus.ios.importClass("AVAudioSession");
var AVSpeechSynthesizer = pl... 显示全部 »
向IOS同事请教,已解决该问题。
```javascript
var AVAudioSession = plus.ios.importClass("AVAudioSession");
var AVSpeechSynthesizer = plus.ios.importClass("AVSpeechSynthesizer");
var AVSpeechUtterance = plus.ios.importClass("AVSpeechUtterance");
var AVSpeechSynthesisVoice = plus.ios.import("AVSpeechSynthesisVoice");
AVAudioSession.sharedInstance().setCategoryerror("AVAudioSessionCategoryPlayback",null);
var sppech = new AVSpeechSynthesizer();
var utterance = AVSpeechUtterance.speechUtteranceWithString("共产主义接班人");
utterance.plusSetAttribute("rate",0.3);
sppech.speakUtterance(utterance);
//停止
sppech.stopSpeakingAtBoundary(0)
//暂停
sppech.pauseSpeakingAtBoundary(0);
//继续
sppech.continueSpeaking(0);
plus.ios.deleteObject(voice);
plus.ios.deleteObject(utterance);
plus.ios.deleteObject(sppech);
plus.ios.deleteObject(AVAudioSession);
```
**需iOS7.0及以上系统支持此功能**
**Android平台参考[http://ask.dcloud.net.cn/question/6473](http://ask.dcloud.net.cn/question/6473)**
2

赞同来自: CKHan iamhuhongtao

更新:5+已提供蓝牙,参考[http://www.html5plus.org/doc/zh_cn/bluetooth.html](http://www.html5plus.org/doc/zh_cn/bluetooth.html) 注意需要最新版HBuilde... 显示全部 »
更新:5+已提供蓝牙,参考[http://www.html5plus.org/doc/zh_cn/bluetooth.html](http://www.html5plus.org/doc/zh_cn/bluetooth.html) 注意需要最新版HBuilderX

需要对你的代码进行修正如下:
main = plus.android.runtimeMainActivity();
Context = plus.android.importClass("android.content.Context");
BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
plus.android.importClass(BManager);//引入相关的method函数
BAdapter = BManager.getAdapter();
plus.android.importClass(BAdapter);//引入相关的method函数,这样之后才会有isEnabled函数支持
if(!BAdapter.isEnabled()) {
BAdapter.enable();
}

同时建议,由于BluetoothManager.getAdapter()属于level18版本,在18以下版本肯定是不能使用的。还请使用BluetoothAdapter.getDefaultAdapter() 方式实现。
5

赞同来自: 小云菜 jwenlee Gaollg 蔡繁荣 Trust 更多 »

更新=====
plus.webview补充了截屏方法,这个效率更高,而且ios、Android都可以直接用。[http://html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewObject.dra... 显示全部 »
更新=====
plus.webview补充了截屏方法,这个效率更高,而且ios、Android都可以直接用。[http://html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewObject.draw](http://html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewObject.draw)

以下为过期信息===========================================

不需要插件,Native.js搞定。附件是一段Native.js代码。

```javascript
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}

var Activity,view,viewClass,BitmapFactory,StringBuffer,Byte,CompressFormat,ByteArrayOutputStream,str,bBitmap,bStream,bytes,Base64;
var bitmap = null;

function plusReady(){
// 导入Native.js需要的原生对象
Activity = plus.android.runtimeMainActivity();
BitmapFactory = plus.android.importClass("android.graphics.BitmapFactory");
StringBuffer = plus.android.importClass("java.lang.StringBuffer")
Byte = plus.android.importClass("java.lang.Byte");
CompressFormat = plus.android.importClass("android.graphics.Bitmap.CompressFormat");
bBitmap = plus.android.importClass("android.graphics.Bitmap");
ByteArrayOutputStream = plus.android.importClass("java.io.ByteArrayOutputStream");
Base64 = plus.android.importClass("android.util.Base64");
//viewClass = plus.android.importClass("android.view.View");

document.getElementById("btGetCapture").disabled="";
}

function getCapture () {
//配置view缓存
view = Activity.getCurrentFocus();
plus.android.invoke(view,"setDrawingCacheEnabled",true);
plus.android.invoke(view,"buildDrawingCache");
//对view截图,存入bitmap中
bitmap = plus.android.invoke(view,"getDrawingCache");

if (bitmap != null) {
console.log("截图成功");
// 将原生Bitmap转换成Base64字符串,赋值给js变量
try {
str = new StringBuffer();
bStream = new ByteArrayOutputStream();
bitmap.compress(bBitmap.CompressFormat.PNG, 100, bStream);
bStream.flush();
bStream.close();
bytes = bStream.toByteArray();
str.append(Base64.encodeToString(bytes, Base64.NO_WRAP));
} catch (e) {
console.log(e.message);
}
console.log("截图字节长度:"+str.length());
document.getElementById("imgCapture").src = "data:image/png;base64," + str.toString();
}
else {
console.log("截图失败,请重试"); //此处可以进一步优化为失败后循环截图直到获取到截图
}
}

</script>
<style type="text/css">
body{
margin: 0px; padding: 0px;
}
</style>
</head>
<body>
<!--<button onclick="history.back()">后退</button>-->
<button onclick="location.reload()">刷新</button>
<button id="btGetCapture" onclick="getCapture()" disabled="disabled"> 截图 </button>
<img id="imgCapture" style="width: 100%;"/>
</body>
</html>

```
2

赞同来自: JBoss MobroChu

由于Android系统tts不支持中文,使用科大讯飞文字转语音功能,使用如此功能时,需要保证manifest.json中permissions节点含有speech节点(如"Speech": {"description":... 显示全部 »
由于Android系统tts不支持中文,使用科大讯飞文字转语音功能,使用如此功能时,需要保证manifest.json中permissions节点含有speech节点(如"Speech": {"description": "管理语音识别插件" })。

```javascript

var main = plus.android.runtimeMainActivity();
var SynthesizerPlayer = plus.android.importClass('com.iflytek.speech.SynthesizerPlayer');
var play = SynthesizerPlayer.createSynthesizerPlayer(main,'appid=5177d8fe');
play.playText('水果',null,null);
```

**iOS平台参考[http://ask.dcloud.net.cn/question/4175)(http://ask.dcloud.net.cn/question/4175)**
4

赞同来自: DCloud_heavensoft 蔡繁荣 braveheart ZhangYejun

最新更新适配见:[http://ask.dcloud.net.cn/question/12942](http://ask.dcloud.net.cn/question/12942)
================================
大家先尝鲜一... 显示全部 »
最新更新适配见:[http://ask.dcloud.net.cn/question/12942](http://ask.dcloud.net.cn/question/12942)
================================
大家先尝鲜一下,我仅测试读公交卡了。数据可以出来,具体哪些数据有用,需要专业开发者补充完善分享。在此先谢过了。
```
function test_nfc(){
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass('android.content.Intent');
var Activity = plus.android.importClass('android.app.Activity');
var PendingIntent = plus.android.importClass('android.app.PendingIntent');
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var NfcAdapter = plus.android.importClass('android.nfc.NfcAdapter');
var nfcAdapter = NfcAdapter.getDefaultAdapter(main);
var intent = new Intent(main, main.getClass());
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
var pendingIntent = PendingIntent.getActivity(main, 0, intent, 0);
var ndef = new IntentFilter("android.nfc.action.TECH_DISCOVERED");
ndef.addDataType("*/*");
var intentFiltersArray = [ndef];
var techListsArray = [["android.nfc.tech.IsoDep"], ["android.nfc.tech.NfcA"], ["android.nfc.tech.NfcB"], ["android.nfc.tech.NfcF"], ["android.nfc.tech.Nfcf"], ["android.nfc.tech.NfcV"], ["android.nfc.tech.NdefFormatable"], ["android.nfc.tech.MifareClassi"], ["android.nfc.tech.MifareUltralight"]];
document.addEventListener("newintent",
function() {
console.log('newintent');
setTimeout(handle_nfc_data,1000);
}, false);

document.addEventListener("pause", function(e) {
if (nfcAdapter) {
nfcAdapter.disableForegroundDispatch(main);
console.log('pause');
}
}, false);

document.addEventListener("resume", function(e) {
if (nfcAdapter) {
console.log('resume');
nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);
}
}, false);
nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);
}

function handle_nfc_data(){
var main = plus.android.runtimeMainActivity();
var runtimeIntent = main.getIntent();
var b = runtimeIntent.getExtras();
plus.android.importClass(b);
var set = b.keySet();
plus.android.importClass(set);
var sb;
var i = set.iterator();
plus.android.importClass(i);
var hasNest = i.hasNext();
var NfcA = plus.android.importClass("android.nfc.tech.NfcA");
var IsoDep = plus.android.importClass("android.nfc.tech.IsoDep");
var Tag = plus.android.importClass("android.nfc.Tag");
while (hasNest) {
var key = i.next();
var v = b.get(key);
if(v instanceof NfcA){
var atqa = v.getAtqa();
var sak = v.getSak();
var tag = g.getTag();
plus.android.importClass(tag);
var techList = tag.getTechList();
console.log('NfcA Atqa=' + atqa + ";Sak=" + sak + ";techList=" + techList);
}else if(v instanceof IsoDep){
var tag = g.getTag();
plus.android.importClass(tag);
var techList = tag.getTechList();
console.log('IsoDep techList=' + techList);
}else if(v instanceof Tag){
var tag = v;
var techList = tag.getTechList();
console.log('Tag techList=' + techList);
}
console.log(key + ';v=' + v);
sb = key + "=" + v + "\n";
hasNest = i.hasNext();
console.log('hasNest=' + hasNest);
}
}
```
2

赞同来自: Trust hanbin655

调用ACtivity
var activity = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android... 显示全部 »
调用ACtivity
var activity = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var intent = new Intent(activity.getIntent());
intent.setClassName(activity, "com.HBuilder.integrate.SDK_WebApp");
activity.startActivity(intent);
更多...

通过native.js调用系统分享 - 示例 移动APP Native.JS NJS

分类: HTML5+ / Native.js 1***@qq.com2024-03-27 16:54  评论文章 • 34 个评论 • 39815 次浏览

精华 Native.js示例汇总 NJS Native.JS 示例

分类: HTML5+ / Native.js 1***@qq.com2024-03-27 12:08  评论文章 • 158 个评论 • 613068 次浏览

精华 Native.JS监听手机锁屏,解锁,开屏 Native.JS

分类: HTML5+ / Native.js t***@foxmail.com2024-03-20 17:38  评论文章 • 16 个评论 • 22169 次浏览

精华 安卓Native.js蓝牙连接票据打印机完整代码已测试修改 源码 Native.JS

分类: HTML5+ / Native.js kku2023-12-25 15:07  评论文章 • 138 个评论 • 74309 次浏览

精华 基于native.js的文件系统管理功能实现 源码分享 技术分享 Native.JS 文件

分类: HTML5+ / Native.js 2***@qq.com2023-12-13 20:43  评论文章 • 34 个评论 • 34251 次浏览

精华 文字合成语音的实现 Native.JS 文字转语音 语音朗读 TTS

分类: HTML5+ 2***@qq.com2023-09-23 18:16  评论文章 • 44 个评论 • 25524 次浏览

uni-app打开微信扫一扫 Native.JS 扫一扫

分类: uni-app 初樰2023-09-05 18:20  评论文章 • 6 个评论 • 10287 次浏览

安卓11及以上版本申请所有文件访问权限 Native.JS

分类: HTML5+ / Native.js 3***@qq.com2023-08-21 11:35  评论文章 • 3 个评论 • 1980 次浏览

更多...