Articles of JavaScript

在Android上运行NodeJS的可行选项(2017年8月)

有许多旧的SO线程处理在Android上运行NodeJS。 其中大多数不再可行(JXCore)和/或提供令人困惑,过时,不完整或错误的信息。 因此,我调查了目前(截至2017年8月)可行的方法,并find了三个可能的候选人。 要在他们之间做出决定,我想知道: 这些方法之间的主要区别 每种方法的特定专业人员和骗局 可能遇到障碍,挑战和缺点 你知道其他可行的替代方案吗? 可行的方法是 : 运行包含NodeJS ( J2V8 )的V8 javascript引擎 直接使用NodeJS,嵌入为本机库( node-on-android ) 将React Native与NodeJS app-as-a-service( react-native-node )相结合 除此之外,我还find了许多相关的有趣资源: NPM在没有root的情况下直接使用Termux安装NodeJS(不适用于最终用户) LiquidCore – 原生移动微应用程序devenv(未调查,有趣的概念) dna2oslab – 有一个用于节点可执行文件的工作NodeJS构建脚本 为Android构建NodeJS – 博客提供有用的编译技巧和示例项目

Cordova PhoneGap从2.2.0升级到5.1.1

我有Cordova应用程序,版本2.2.0。 现在我要升级,我已经做了升级部分,升级后,应用程序图像不显示,它来了空白屏幕。 即使是闪屏也没来。 这是我的代码 现在我达到了某种程度。 我模拟的应用程序是关于SQLitePlugin问题。 当Open数据库说db.cordova没有定义时 如何安装数据库 – 将数据库从db文件夹复制到android安装位置。 这工作得很好。 这是我的数据库: var DB = new Object(); DB.isDBSupported = false; DB.isDBCreated = false; DB.vocabDB = null; DB.tables = [‘userResponses’, ‘wordGroups’, ‘words’, ‘wordMapping’, ‘checkExists’, ‘patch_version’] DB.createdTables = 0; DB.setupCallback = null; DB.curQP = null; DB.accountStatus = false; DB.sfx = true; DB.showWarnings = true; DB.firstLaunch = false; […]

使用GSAP的Android webview:尝试删除非JNI本地引用,转储线程

在使用Nexus5仿真器的Android Studio 1.4中,每次在webview中使用GSAP都有3Danimation(x,y,rotationX,rotationY,rotationZ)时,logcat会发出大量此消息: Attempt to remove non-JNI local reference, dumping thread 这似乎不会影响我的webapp的行为,除了产生消息时的一些口吃,这对于需要几秒钟完成的animation来说是多次。 关于如何停止的任何想法,或者这甚至是一个问题? 更新:我的测试设备,三星Galaxy S4上没有出现错误。 所以它可能只是一个模拟器问题。

Android主线程阻塞WebView线程

我一直在努力解决在WebView对JavaScript进行同步调用(带有返回值)的问题,并尝试缩小为什么它不起作用的地方和原因。 似乎WebView线程在主线程等待来自它的响应时阻塞 – 由于WebView在单独的线程上运行,因此不应该这样。 我把这个小样本放在一起,相当清楚地展示了它(我希望): main.xml中: MyActivity.java: package com.example.myapp; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.JavascriptInterface; import android.webkit.WebViewClient; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; public class MyActivity extends Activity { public final static String TAG = “MyActivity”; private WebView webView; private JSInterface JS; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); […]

在Android上使用addJavascriptInterface()传递JavaScript对象

是否可以使用addJavascriptInterface()将JavaScript对象从JavaScript传递给Java? 这些方面的东西: var javaScriptObject = {“field1″:”string1”, “field2″:”string2”}; JavaScriptInterface.passObject(javaScriptObject); 如何在Java端捕获这样的调用? 设置接口以发送字符串没有问题,但是当我发送一个对象时,我在Java端收到null。

Android浏览器中的SVG

我知道它本身不支持,但有没有JS Shims渲染成canvas对象或什么东西,可以让我在原生的Android浏览器呈现SVG? (不是歌剧等,因为我想避免让用户需要安装另一个浏览器)

在Android的webview,当我执行javascript sotfkeyboard消失

在WebView中,当我通过webview.loadUrl()执行JavaScript时,如果可见,软键盘消失。 当我尝试在HTML文本字段中键入一些文本时,softkeyboard消失(如果JavaScript被执行),我无法input所有文本。 文本字段不会丢失焦点,所以提示仍然在文本字段上,但软键盘已closures。 有人能告诉我如何解决这个问题吗?

如何使用Cordova插件实现应用程序内购买?

请告诉我使用Cordova插件实现应用程序内购买的方式。 我正在使用Cordova开发Android应用程序。 有一些应用内购买插件,但我决定使用Cordova购买插件。 我在PhoneGap / Cordova iOS和Android的应用内购买的 README.md上做了一些设置。 因此,我可以使用购买插件的Cordova的演示来调用插件,只需稍作修改即可。 (请参阅以下内容,它是代码的一部分。) app.initStore = function() { if (!window.store) { log('Store not available'); return; } // Enable maximum logging level store.verbosity = store.DEBUG; // Enable remote receipt validation // store.validator = "https://api.fovea.cc:1982/check-purchase"; // Inform the store of your products log('registerProducts'); store.register({ id: 'myProductA', alias: 'myProductA', type: store.CONSUMABLE }); […]

如何在桌面上模拟移动(android)浏览器

我试图debugging只有当我从手机浏览器访问移动网站时出现的问题。 我强烈怀疑问题的根本原因是由于多次访问同一页面时发生的caching。 当我从我的Android手机访问页面时,我可以一直重现该问题,但是如果使用桌面浏览器,问题就不会发生。 因为我的Android手机上无法使用任何开发工具,所以我真的需要从桌面浏览器重现这个问题,这样我就有了一些debugging的方法。 我已经尝试同时使用Firefox和Chrome,并且设置了User-Agent标题(这样就可以显示移动版本的网站),但是这样做不起作用。 有没有更好的方式来模仿从桌面移动浏览器的行为,在某种程度上允许客户端代码可以被debugging? FWIW,我相当有信心,我也可以重现在iPhone上的问题,但没有一个可用。

Uncaught ReferenceError:媒体未定义

我一直在试图让媒体元素在部署到Android时在PhoneGap中工作。 以下是我迄今所做的: 下载并安装如下: Java(版本7更新25) http://java.com/en/download/index.jsp Java SE开发工具包7u25(64位) http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html Ant(1.9.2) http://www.apache.org/dist/ant/binaries/ NodeJS(v0.10.18 64位) http://nodejs.org/ Android SDK(ADT Bundle for Windows)64位 – 版本2013-07-29 http://developer.android.com/sdk/index.html 安装文件夹:E:\ PhoneDev \ adt-bundle-windows-x86_64-20130729 设置环境variables: JAVA_HOME = C:\Progra~1\Java\jre7 ANT_HOME = E:\Program Files (x86)\apache-ant-1.9.2 NODEJS = E:\Program Files (x86)\nodejs validation以下path添加到PATH环境variables(用分号分隔): E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\platform-tools E:\PhoneDev\adt-bundle-windows-x86_64-20130729\sdk\tools %ANT_HOME%\bin %NODEJS% E:\Program Files\Java\jdk1.7.0_25\bin 安装PhoneGap(现在是3.0.0版本): npm install -g phonegap 创buildphonegap应用程序: phonegap create media-app […]