`
zengyan2012
  • 浏览: 417097 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

webview 提交表单,获取返回值 ------断点记录

阅读更多

写的有点乱,如果有看到不懂的地方可以密我。

一些关键的地方用了颜色标记。。。

 

 

android端

java代码:

webView = (WebView) this.findViewById(R.id.webview);

 

WebSettings  ws  = webView.getSettings();

ws .setJavaScriptEnabled(true);

ws .setDefaultTextEncodingName("UTF-8");

webView.setClickable(true);

ws.setUseWideViewPort(true);

webView.setInitialScale((int) 0.1);

ws.setSupportZoom(true);

ws.setBuiltInZoomControls(true);

ws.setDefaultZoom(ZoomDensity.FAR);

webView.getSettings().setUseWideViewPort(true);

webView.getSettings().setLoadWithOverviewMode(true);

webView.addJavascriptInterface(new LoadHtml(), "loadHtml");  // loadHtml 类用于给js调用java代码

webView.loadData(createWebForm(flowFormHtml), "text/html", "UTF-8");    // flowFormHtml是服务器端发回来的动态表单信息。

webView.setWebChromeClient(new MyWebClient());

 

 

//java调用js代码: webView.loadUrl("javascript:函数名(参数)");

 

 

 

protected final class LoadHtml {  

public void returnValue(final String htmls) {

handler.post(new Runnable() {

public void run() {

// 这里判断htmls的值,然后显示告诉用户提交状态。

}

});

}

}

 

// createWebForm 函数把flowFormHtml包装到html表单中,然后提交到服务器

 

html代码:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

<script type="text/javascript" >

function submit(){  //供java端调用,提交表单信息

document.getElementById(\"js_form\").submit();

}

fcunction setAaaaaValue(val){  //设置隐藏的非表单的信息

document.getElementById(“aaaaa”).value =val;

}

</script>

</head>

<body>

<form method="post" id="js_form" enctype="multipart/form-data" action="*******">

 

   <input id ="aaaaa" style="display:none" />   //隐藏用于添加一些非表单信息

    flowFormHtml  //服务器端返回的数据

</form>

</body>

</html>

 

 

 

 

 

 

 

php端的返回值:

<script type='text/javascript'>window.loadHtml.returnValue('{$returnState['state']}');</script> //会调用android端returnVlaue函数

          php                android

boolean   true                1

boolean   false                ""

String       true/false       true/false

 

1:如果直接用返回boolean类型,android这端(用字符串接受)接受的结果会为

0
0
分享到:
评论
2 楼 zengyan2012 2013-03-25  
a2855090 写道
webView.setWebChromeClient(new MyWebClient());  在这个类里我还要做什么操作啊?  还有个createWebForm(flowFormHtml),  也不是很懂  求解,谢谢!


1:
createWebForm 这个函数,是主要拼装HTML代码。。
      比如说:<html><head></head><body><font color="red">测试</font></body></html>
2:
webView.setWebChromeClient(new MyWebClient()); 
    MyWebClient是我自己定义的一个WebChromeClient, WebChromeClient的作用就是处理Javascript的对话框、网站图标、网站title、加载进度等。
   比如说javascript中的alert("弹出窗口")在webview中就需要重写WebChromeClient的onJsAlert方法。
1 楼 a2855090 2013-03-22  
webView.setWebChromeClient(new MyWebClient());  在这个类里我还要做什么操作啊?  还有个createWebForm(flowFormHtml),  也不是很懂  求解,谢谢!

相关推荐

    qtwebview-everywhere-src-5.15.0.zip

    在"qtwebview-everywhere-src-5.15.0.zip"这个压缩包中,包含了源代码,供开发者深入理解其工作原理并进行定制化开发。QTWebView基于WebKit引擎,WebKit是一个开源的网页渲染引擎,广泛应用于多个平台,包括桌面、...

    qtwebview-everywhere-src-6.6.0.zip

    标题 "qtwebview-everywhere-src-6.6.0.zip" 指向一个压缩包文件,该文件包含了名为 "qtwebview-everywhere-src-6.6.0" 的源代码。这个文件名暗示了其内容与 "qtwebview" 有关,而 "qtwebview" 可能是指与Qt框架相...

    qtwebview-everywhere-src-5.15.0.tar.xz

    qtwebview-everywhere-src-5.15.0.tar

    qtwebview-everywhere-src-6.8.0.zip

    “qtwebview-everywhere-src-6.8.0.zip”是一个包含Qt6.8.0版本源代码的压缩包文件。该文件的名称表明它是一个专门为跨平台Web视图组件设计的源代码包。这意味着它可能包含了用于在不同的操作系统上展示网页内容的...

    android-system-webview-7703.apk

    Android8.0以下手机自带的android-system-webview版本过低使用

    qtwebview-everywhere-src-6.6.1.zip

    最后,由于源代码包的名称是"qtwebview-everywhere-src-6.6.1",这表明我们正在讨论的是一个源代码版本,因此,对于想要深入研究QtWebView内部工作原理,或者寻求更深层次定制的开发者来说,这个源代码包提供了一个...

    WebView2-20200512- WebView2Loader.dll.zip

    【WebView2Loader.dll详解】 WebView2 是微软推出的一款现代Web技术框架,用于在桌面应用程序中嵌入Web内容。它基于Chromium项目,提供了与最新Web标准兼容的浏览器内核,使得开发者可以在桌面应用中轻松集成网页...

    3D WebView-Windows-macOS-Web Browser 4.2.unitypackage.zip

    在这款名为"3D WebView-Windows-macOS-Web Browser 4.2.unitypackage.zip"的压缩包中,包含了一个专为Unity设计的3D WebView组件,版本号为4.2,适用于Windows和macOS操作系统。这个组件允许开发者将网页内容无缝...

    3D-WebView-For-iOS-Android4.2.2 + Mac-Windows4.2

    《3D WebView技术在iOS与Android平台的应用及实现》 3D WebView技术是一种创新的解决方案,它将传统的WebView组件与3D渲染能力相结合,为移动设备和桌面平台提供了丰富的交互体验。这一技术主要应用于游戏开发、...

    (16)2020.8.9 一步一步搭建可扩展高可靠的Android Webview模块(上)-Allen老师.rar

    - 使用`WebView.evaluateJavascript()`方法直接执行JavaScript代码并获取返回值。 6. **Webview的可扩展性** - 设计模块化的`WebView`,将加载、缓存、交互等功能拆分成独立组件,便于维护和扩展。 - 创建自定义...

    react-native-web-webview:React Native用于RN的WebView的Web实现

    react-native-web-webview React Native用于RN的WebView的Web实现 入门 $ npm install react-native-web-webview --save 别名打包您的webpack配置中: resolve: { alias: { 'react-native': 'react-native-web...

    react-native-webview.zip

    React Native WebView是一个流行的开源库,它允许React Native应用嵌入网页内容。这个库使得开发者能够利用Web技术(HTML、CSS和JavaScript)与React Native原生功能的结合,为移动应用提供丰富的交互体验。在...

    WebView侧滑菜单完全版-MUI

    【WebView侧滑菜单完全版-MUI】是一款基于MUI框架实现的Webview侧滑菜单解决方案,它集成了父子页面切换功能,提供了丰富的交互体验。在移动应用开发中,Webview通常用于展示HTML5内容,而侧滑菜单是移动应用中常见...

    安全架构 Android_WebView安全攻防指南2020 - .net.zip

    安全架构 Android_WebView安全攻防指南2020 - 系统安全 勒索软件 终端安全 安全漏洞 安全管理

    android webview中使用Java调用JavaScript方法并获取返回值

    总结一下,从Android WebView调用JavaScript方法并获取返回值的关键步骤包括: 1. 启用WebView组件的JavaScript支持。 2. 使用addJavascriptInterface()方法建立Java和JavaScript之间的通信桥梁。 3. 在Java类中...

    解决React-Native的WebView不支持Android选择图片和拍照

    然而,由于React Native的WebView组件与原生Android系统的交互限制,有时会出现无法从Android设备的相册或相机选择图片并上传的问题。这个问题可能会导致用户体验下降,因为用户无法充分利用手机的功能。本文将深入...

    crosswalk-webview-23.53.589.4-x86_64.zip

    - 文件“crosswalk-webview-23.53.589.4-x86_64”是针对x86_64架构的版本,适用于64位设备。开发者在不同设备上测试时,需要根据设备的架构选择合适的版本。 - 尝试集成Crosswalk-WebView时,确保按照官方文档进行...

    Android 不用webview 执行js代码 rhino-1.7.7.2.jar

    Android 中不在用webview的情况下 执行js代码并得到返回值

    qtwebview-everywhere-src-6.8.0.tar.xz

    Qt6.8.0 源代码

    安卓java获取webview源码-react-native-webview-android-file-upload:这是一个自定义React

    安卓java获取webview源码 :warning: :warning: :warning: [ 已弃用 ] :warning: :warning: :warning: :backhand_index_pointing_right: 请使用由 React Native 社区维护的 。 React Native Android WebView 文件上传...

Global site tag (gtag.js) - Google Analytics