如何在iOS和Android上选择一个JavaScript 引擎进行应用开发

JavaScript013

如何在iOS和Android上选择一个JavaScript 引擎进行应用开发,第1张

参考如下内容:

主要有两种方法。一种是使用系统的浏览器组件(IOS中的UIWebView和Android中的WebView),另一方法就是使用整合好的JavaScript引擎。

使用系统的浏览器组件比较容易实现但是更复杂,效率也低。 WebView提供了 addJavascriptInterface 把Java classes注入到JavaScript文本的方法。但是它只支持最原始的几种数据类型,因此也局限了API设计。并且在Android 2.3模拟器上不稳定,在真机上也会遇到 issue #12987的问题。在IOS上更糟 UIWebView没有公共的APIs支持JavaScript到Objective-C的交互(你必须使用似有的APIs才能达到与addJavascriptInterface相同的功能)。

PhoneGap 是基于 UIWebView and WebView的比较出名的项目。开发者被迫使用回调函数从JavaScript APIs得到返回值。这在游戏上效率极低,也更为复杂。

早期的ngCore同样依赖UIWebView来支持iOS。但是这个机制由于其糟糕的表现被取代。

为了获得更好的表现、灵活性、兼容性,嵌入全功能的JavaScript引擎变得更为有效。

webstrom主要是做web开发的吧,没听说可以用这个开发android应用,也可能是我没用过,不知道。Android开发主要是用Eclipse或者Android Studio开发的,教程的话百度一下,多的很。首先从搭建环境开始,下载Eclipse,sdk,jdk配置好环境后就可以进行开发了。百度一下Android环境搭建,教程很详细的。开发的教程很多的,不过要是自学的话,感觉比较慢,简单的参加个培训班,快速入门后,然后再深入的去了解和学习比较好。

望采纳。

在Android的开发过程中、遇到一个新需求、那就是让Java代码和Javascript代码进行交互、在IOS中实现起来很麻烦、而在Android中相对来说容易、Android对这种交互进行很好的封装、其实可以很简单的用Java代码调用WebView中的js函数、也可以用WebView中的js来调用Android应用中的Java代码

一、网页的JS代码调用ANDROID中JAVA代码的方法

在网页中调用java代码、需要在webview控件中添加javascriptInterface

contentWebView = (WebView) findViewById(R.id.webview)

//启用javascript

contentWebView.getSettings().setJavaScriptEnabled(true)

contentWebView.addJavascriptInterface(this, "js对象名")

在Activity中定义一个要被js调用的方法、src为js传递过来的参数、如果没有不传也可以的。

public void jsFunction(final String str) {

Toast.makeText(this, str, Toast.LENGTH_SHORT).show()

runOnUiThread(new Runnable() {

@Override

public void run() {

//在里对Android应用的UI进行处理

}

})

}

在网页中、只需要像调用js方法一样、进行调用就可以

<a onClick="window.js对象名.jsFunction(´hello world´)" >

点击调用java代码并传递参数

</a>

二、ANDROID中JAVA代码调用网页的JS代码的方法

Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的、只是参数url的写法不一样

// 无参数调用

contentWebView.loadUrl("javascript:javacalljs()")

// 传递参数调用

contentWebView.loadUrl("javascript:javacalljswithargs("

+ "´hello world´" + ")")

三、JAVA和JS交互注意事项

1、Java 调用 js 里面的函数、效率并不是很高、估计要200ms左右吧、做交互性很强的事情、这种速度很难让人接受、而js去调Java的方法、速度很快、50ms左右、所以尽量用js调用Java方法

2、Java 调用 js 的函数、没有返回值、调用就控制不到

3、Js 调用 Java 的方法、返回值如果是字符串、你会发现这个字符串是 native 的、转成 locale 的才能正常使用、使用 toLocaleString() 函数就可以、不过这个函数的速度并不快、转化的字符串如果很多、将会很耗费时间

4、网页中尽量不要使用jQuery、执行起来需要5-6秒、最好使用原生的js写业务脚本、以提升加载速度、改善用户体验