WebView--安卓与HTML的交互
来源:互联网 发布:外贸crm软件 编辑:程序博客网 时间:2024/04/30 08:21
1,Android与HTML交互有2种情况
1.Android 调用 HTML
5,HTML 代码
1.Android 调用 HTML
2.HTML 调用 Android,
2,步骤
1.设置允许执行JS脚本:
webView.getSettings().setJavaScriptEnabled(true);
mWebview.loadUrl("file:///android_asset/index.html");
2.添加通信接口
webView.addJavascriptInterface(Interface,”InterfaceName”)
3. JS调用Android
InterfaceName.MethodName
4. Android调用JS
webView.loadUrl("javascript:functionName()");
3,XML
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" tools:context="com.vily.html5.MainActivity"> <Button android:id="@+id/button" android:text="点击" android:layout_width="match_parent" android:layout_height="wrap_content"/> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"> </WebView></LinearLayout>
4,安卓代码:
package com.vily.html5;import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.webkit.JavascriptInterface;import android.webkit.WebView;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button mButton; private WebView mWebview; private VilyInterface mVilyInterface; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(this); mWebview = (WebView) findViewById(R.id.webview); mWebview.loadUrl("file:///android_asset/index.html"); mWebview.getSettings().setJavaScriptEnabled(true); mVilyInterface = new VilyInterface(this); mWebview.addJavascriptInterface(mVilyInterface,"vily"); } @Override public void onClick(View v) { mVilyInterface.showName("haha"); } class VilyInterface { private Context mContext; public VilyInterface(Context context) { this.mContext=context; } /*** * * @param name 这个方法 供JavaScript去调用的 */ @JavascriptInterface public void sayHello(String name){ Toast.makeText(mContext,"name="+name,Toast.LENGTH_LONG).show(); } /** * * @param name 这个方法 用来调用 HTML中的方法 */ public void showName(final String name){ runOnUiThread(new Runnable() { @Override public void run() { mWebview.loadUrl("javascript:showName('"+name+"')"); } }); } }}
5,HTML 代码
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>HTML5 测试</title><style type="text/css">.input{width: 90%;height: 30px;}.button{width: 60%;height: 40px;background: #fff;color: #000}</style><script type="text/javascript">function sayhello(){var name = document.getElementById("txtName").value;window.vily.sayHello(name);}function showName(name){document.getElementById("txtName").value=name;}</script></head><body><input id="txtName" class="input" ><br/><hr><button class="button" onclick="sayhello()">say Hello</button></body></html>
6,HTML文件放在asstes 目录下
地址:http://blog.csdn.net/u011710991/article/details/52219648
阅读全文
0 0
- WebView--安卓与HTML的交互
- 关于安卓开发webview与js交互的问题
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:*
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓实现webview 与js交互
- 安卓WebView与JavaScript交互
- JavaScript与Android的数据交互,js与安卓数据交互WebView
- 安卓 webview的js交互
- 安卓客户端与html js 交互
- 安卓webView,js交互
- 安卓使用WebView与js进行交互
- 安卓webview与js交互 问题总结
- 安卓学习笔记---解决Android签名混淆后WebView与JS交互失效的问题
- Numpy 总结
- 训练py-faster-rcnn(caffe)
- BRIEF描述子介绍及其opencv3实现
- 关于FLEXenabled许可
- Wzy—Shader新手入门精讲(一)
- WebView--安卓与HTML的交互
- 数据库控制台宽度和分页长度设置
- 距离及相似度度量方法
- Mysql启动与关闭的脚本
- 得到控制台窗口的句柄
- 使用pandas从mysql中导出数据
- 15周 项目1
- Linux 挂载U盘
- [BZOJ1468]Tree 点分治