Android中的JS扩展有2中方式:
1.利用webkit提供的js扩展接口在 java层扩展,直接由app实现
优点:容易
缺点:跟app耦合,其他app不能使用该js扩展
2.利用npapi在cpp层扩展
优点:所有app都能共享该扩展
缺点:相对有难度
引擎主要分为3大模块
1.webkit 平台相关代码,是对以下2模块的平台port封装
2.webcore 实现layout排版;渲染;当检测html中含有js脚本时交由jscore处理
3.javascriptcore/v8 解析js脚本,并执行
jscore跟webcore的交互 主要跟binding有关系。数据类型有map映射,一般的js扩展不涉及jscore的改动
-
public
class WebViewDemo extends Activity {
private WebView mWebView;
private Handler mHandler = new Handler();
public
void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.webviewdemo);
mWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true); //webview支持javascript
mWebView.addJavascriptInterface(new Object() { //添加javascript可调用的接口
public
void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
mWebView.loadUrl("javascript:wave()");
}
});
}
}, "demo");
mWebView.loadUrl("file:///android_asset/demo.html"); //调用的网页
}
}
demo.html:
<html>
<script language="javascript">
function wave() { //准备在activity里调用的函数
document.getElementById("droid").src="android_waving.png";
}
</script>
<body>
<a onClick="window.demo.clickOnAndroid()"> //调用activity的clickOnAndroid()函数
<imgid="droid"src="android_normal.png"/><br>Click me!
</a>
</body>
</html>
分享到:
相关推荐
WebViewJavascriptBridge for Android is Cross-platform WebViewJavascriptBridge for Android Extension,the JavaScript interface compatible with WebViewJavascriptBridge 。 Usage Add following to the ...
android 与js交互,可以直接运行,直接拖到项目中进行编写,可进行扩展 android 调用js代码,并记录js页面上面的信息进行保存
前端开发同时需要维护两套 JS 交互框架,增加了代码的维护成本和可扩展性,故提出一个安卓和 IOS 统一的 JS 交互框架显得尤为必要,需要另辟蹊径,去寻找既安全,又能实现兼容 Android 和 IOS《方法论》,杰斯布里奇...
android 与js交互,可以直接运行,直接拖到项目中进行编写,可进行扩展 android 调用js代码,并记录js页面上面的信息进行保存
目前很多Android app都内置了可以显示...–和JavaScript交互调用 一、基本使用 首先layout中即为一个基本的简单控件: <WebView android:id=@+id/webView1 android:layout_width=fill_parent android:layout
例如,我们使用了Android Studio作为开发工具,它提供了一系列的功能和工具,如代码编辑器、调试器和模拟器,使得开发人员可以快速开发和测试安卓应用。我们还使用了Java作为主要的编程语言,它是安卓应用开发的主流...
简单方便的WebView和Javascript双向交互的框架.zip,android webview与javascript之间一种简单、可扩展的双向通信框架
Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...
只好卖我的经典代码了,以下是我通过html5做的多个跨平台应用的demo框架:使用 phonegap 开发android应用框架结构 前台页面用jquery mobile开发,后台用axis2开发实现webservice,前后台用js发送http请求交互。...
目录 移动开发 扩展 Flipper 为 Flipper 做贡献 在这个 repo 中 入门 需求 从源代码构建 桌面运行 从源代码构建独立应用程序 iOS SDK + 示例应用程序 Android SDK + 示例应用程序文档 贡献许可证 移动开发 Flipper ...
1. **跨平台支持**:Exokit支持多种平台,包括Windows、macOS、Linux、Android和iOS,使开发者能够在不同设备上构建和运行VR和AR应用。 2. **基于WebXR标准**:Exokit遵循WebXR API标准,允许开发者使用Web技术来...
Hippo Animator 软件特色: 专业软件 Hippo Animator 是一家特色包装的动画工作...创建先进的交互式网站,复杂的游戏和应用程序使用内置的 javascript 引擎。您在测试的 Javascript Hippo Animator 导出时的工作一样。
轻松的切换音乐和播放音乐,及歌词的滚动等;webApp、小程序、后端接口都独立开发,方便功能扩展等。 主要创新工作:采用Uni-app + Node分离式开发模式,简化前后端交互;开发者通过uni-app编写一套代码,可发布到...
此 Chrome 应用程序为 F0394148148100 发送 APDU SELECT(这是 Android 文档中定义的示例)。 哇有什么? 大约 9 个月前,Chrome 团队发布了一个名为的示例。 他们的应用程序通过 chrome.usb.Tbulkransfer() 与 ...
基于阿里WeexSDK跨平台方案,在原有的组件基础上,提供weex调用android native方法的一套扩展通信交互库,包含页面导航、数据存储、图片选择、二维码识别/生成、权限等。
Victory 是一组用于 React 和 React Native 的模块化图表组件。 Victory 使上手变得容易,而不会牺牲灵活性。 创建一种具有完全可自定义样式和行为的... 使用相同的 API 在 Android 和 iOS 平台上扩展 Victory 体验。
新的强大的多媒体和交互功能的HTML5,...7、Web应用程序扩展到移动设备,如iPhone,Android和HTML5的2.0 WebOS手机 8、实现Web应用程序中的API的地理定位 9、采用类似于SQL的本地数据存储到您的网络解决方案
后端服务:后端可能采用了Node.js、Python Flask、Django或者Java Spring Boot等技术构建RESTful API,与前端进行数据交互。 数据库:根据应用的数据存储需求,可能会使用MySQL、MongoDB、SQLite等数据库系统来存储...