- 浏览: 1223120 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
完成java文件:
main.xml文件:
demo.html:
还有用到的2张机器人图片:
以防有些人懒得看代码,还是附上工程吧
public class MethodMutual extends Activity { private WebView mWebView; private Handler mHandler = new Handler(); private static final String LOG_TAG = "WebViewDemo"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); loadAssetHtml(); } public void loadAssetHtml() { mWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setSavePassword(false); webSettings.setSaveFormData(false); webSettings.setJavaScriptEnabled(true); webSettings.setSupportZoom(false); mWebView.setWebChromeClient(new MyWebChromeClient()); // 将一个java对象绑定到一个javascript对象中,javascript对象名就是interfaceName,作用域是Global. mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo"); mWebView.loadUrl("file:///android_asset/demo.html"); // 通过应用中按钮点击触发JS函数响应 Button mCallJS = (Button) findViewById(R.id.mCallJS); mCallJS.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mWebView.loadUrl("javascript:wave()"); } }); } private int i = 0; final class DemoJavaScriptInterface { DemoJavaScriptInterface() { } /** * This is not called on the UI thread. Post a runnable to invoke * loadUrl on the UI thread. */ public void callAndroid() { mHandler.post(new Runnable() { public void run() { if (i % 2 == 0) { mWebView.loadUrl("javascript:wave()"); } else { mWebView.loadUrl("javascript:waveBack()"); } i++; } }); } } /** * Provides a hook for calling "alert" from javascript. Useful for debugging * your javascript. */ final class MyWebChromeClient extends WebChromeClient { @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.d(LOG_TAG, message); result.confirm(); return true; } } }
main.xml文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:layout_width="wrap_content" android:text="CallJs" android:layout_height="wrap_content" android:id="@+id/mCallJS" /> <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
demo.html:
<html> <script language="javascript"> /* This function is invoked by the activity */ function wave() { alert("1"); document.getElementById("droid").src="android_waving.png"; alert("2"); } /* This function is invoked by the activity */ function waveBack() { alert("1"); document.getElementById("droid").src="android_normal.png"; alert("2"); } </script> <body> <!-- Calls into the javascript interface for the activity --> <a onClick="window.demo.callAndroid()"><div style="width:80px; margin:0px auto; padding:10px; text-align:center; border:2px solid #202020;" > <img id="droid" src="android_normal.png"/><br> Click me! </div></a> </body> </html>
还有用到的2张机器人图片:
以防有些人懒得看代码,还是附上工程吧
发表评论
-
ListView处理滚动和点击事件
2011-11-14 18:18 4369这段代码可以实现点击和滚动ListView事件分割处理: ... -
Android-sharedUserId数据权限 android:sharedUserId
2011-04-07 21:38 2039Android给每个APK进程分配一个单独的用户空间,其man ... -
标准TabHost的应用
2011-01-28 23:11 2233public class Activity01 exten ... -
WebView使用总结2(加载HTML内容形式的String)
2011-01-25 19:57 21196接着上篇: 6.通过字符串 ... -
WebView使用总结1
2011-01-25 19:35 37841.当只用WebView的时候,最先注意的当然是在配置文件中添 ... -
添加桌面快捷方式
2011-01-18 21:12 1421给一个完整的代码片段: /**Launcher的recei ... -
ListView分批动态加载Item
2011-01-02 09:16 3579这个例子主要实现ListView当滚动完毕所有可见Item后, ... -
ListView的滑动效率问题
2010-12-30 21:15 3412如何提高ListView的滚动速度,ListView的 ... -
AnalogClock的使用
2010-10-12 15:41 1965简单的main.xml就可以搞定: <?xml ve ... -
ExpandListView自动更新(以前发到eoe,现在整理下)
2010-09-26 13:52 72601.直接上界面代码: package com.exampl ... -
SurfaceView的最基础代码段
2010-09-17 14:29 13251.Activity中引用: setContentView ... -
Gallery的学习
2010-09-09 14:42 1123代码如下: Gallery g = (Gallery) f ... -
EditText的一些使用注意点
2010-09-06 14:25 70311.如何对EditText进行setText()的时候使其自动 ... -
ListView动态更新item的例子
2010-09-03 20:57 74521.ListViewUpdate.java文件: packa ... -
ListView点选背景设置
2010-09-02 07:20 14341.构造一个ListView: String[] ... -
OptionMenu的套用代码
2010-08-14 22:11 1484package com.example; impor ... -
一个简单的Spinner使用
2010-08-14 22:08 1201package com.example; impor ... -
AlertDialog显示格式化时间
2010-08-02 21:58 1721这个例子进一步学习AlertDialog: private ... -
CheckBox组件的熟悉
2010-07-27 20:52 1485在xml中可以这样定义: <CheckBox and ... -
AlertDialog的菜单以及MapView使用
2010-07-18 21:47 2314这个例子主要可以学习到: 1.使用AlertDialog显示菜 ...
相关推荐
总之,Android中的WebView与JavaScript的交互是通过暴露Java对象和调用JavaScript函数实现的,这种方式极大地丰富了Android应用的功能。在实际开发中,我们需要合理利用这一特性,同时注意安全性和性能优化。
本示例“WinForm下WebView2实现JS与C#交互Demo”就展示了如何在C#中使用WebView2控件来实现JavaScript与C#之间的双向通信。 首先,确保已安装Microsoft Edge WebView2 SDK。可以通过NuGet包管理器安装`Microsoft....
总结一下,从Android WebView调用JavaScript方法并获取返回值的关键步骤包括: 1. 启用WebView组件的JavaScript支持。 2. 使用addJavascriptInterface()方法建立Java和JavaScript之间的通信桥梁。 3. 在Java类中...
当需要在Android应用中调用JavaScript函数时,我们可以使用`WebView`类提供的`loadUrl()`方法。这个方法接受一个URL字符串,但也可以用来执行JavaScript代码。例如,假设我们有一个名为`myJsFunction`的JavaScript...
`INTERNET`权限允许WebView加载网络资源,`CAMERA`权限允许应用使用设备的摄像头,而`WRITE_EXTERNAL_STORAGE`权限则是为了在SD卡上保存拍摄的照片。 接下来,我们要创建一个自定义的WebView类,扩展`WebViewClient...
本文将深入探讨如何在Android原生的WebView中与嵌入的JavaScript进行交互,使得两者可以相互调用方法,增强应用的功能和用户体验。 一、WebView基本使用 首先,我们需要在布局XML文件中添加WebView组件,并在Java...
本示例“android demo,webview_js”着重展示了如何通过Webview实现JavaScript调用Java方法的功能。这个功能对于创建混合式应用或者在原生应用中嵌入HTML5页面尤其有用。 首先,我们需要在Android布局文件中添加一...
通过WebView,开发者可以将Web技术与原生Android应用结合,实现更丰富的交互体验。 为了调用摄像头并扫描二维码,我们需要在H5页面中使用相关的JavaScript库,例如`html5-qrcode`。这个库提供了一种简单的方法来...
总结,Android的WebView组件为我们提供了Java与JavaScript交互的能力,这极大地扩展了应用的功能边界。无论是实现原生应用与网页的双向通信,还是构建混合式应用,都离不开这种交互机制。理解并掌握WebView的交互...
综上所述,"webview组件javascript调用java的小程序"这个主题涉及到的核心知识点包括:WebView组件的使用、JavaScript与Java的交互机制、`addJavascriptInterface`方法的使用以及`WebViewClient`和`WebChromeClient`...
WebView与JS互相调用是一个刚需,但是貌似现在大家写的文章讲的都不是很清楚,我这个简易指南简单粗暴地分为两部分:JS调用Flutter和Flutter调用JS,拒绝花里胡哨,保证一看就懂,一学就会。 开始之前先简单了解...
本教程将详细讲解如何实现JavaScript与Java之间的基本交互,即WebView中的js调用Android代码以及Android对js的调用。 一、WebView的配置 首先,我们需要在XML布局文件中添加WebView组件,并在对应的Activity中初始...
QT(C++)与Web的JS相互调用是现代跨平台应用开发中常见的需求,尤其在构建混合型应用时。QT库提供了一种强大的机制,允许C++代码与JavaScript环境进行交互,这主要通过QT的QWebChannel模块来实现。本实例将详细解释...
1. **Java调用JS**:在Java代码中,我们可以通过`WebView.loadUrl()`方法加载一个JavaScript URL,或者使用`WebView.evaluateJavascript()`(API 19及以上)来执行一段JS代码并获取返回值。这样,我们可以调用网页中...
3. **调用JavaScript函数** 要从C++调用JavaScript函数,可以使用`QWebView`的`page()->mainFrame()`方法获取`QWebFrame`对象,然后调用其`evaluateJavaScript()`函数。例如,如果你有一个名为`myJSFunction`的...
总结来说,“android webview js 调用接口拍照效果”涉及到的主要知识点包括:Android Webview的JavaScript接口交互、权限管理、相机API的使用、图片处理以及H5与原生应用的交互。通过这些技术,开发者可以为H5应用...
2. **Android Native调用JavaScript函数**:反之,Android代码也可以通过X5Bridge来执行JavaScript代码,这在需要更新网页状态或者触发某些JavaScript逻辑时非常有用。 3. **安全机制**:X5Bridge提供了安全机制,...
JavaScript可以像调用任何其他JavaScript函数一样调用这些方法,只需确保使用正确的对象名称(在本例中为`android`): ```javascript ('Hello, Android!')">点击我 ``` 此外,我们也可以从Java代码中调用...