IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 与Vue 页面交互 -> 正文阅读

[移动开发]Android 与Vue 页面交互

1.加载html

 private void initView() {

        WebSettings webSettings1 = webview.getSettings();
        webSettings1.setJavaScriptEnabled(true);
        webSettings1.setCacheMode(WebSettings.LOAD_NO_CACHE); //关闭webview中缓存

        webview.getSettings().setUseWideViewPort(true);
        webSettings1.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
        webSettings1.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
        webSettings1.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
        webSettings1.setDisplayZoomControls(false); //隐藏原生的缩放控件
        webview.addJavascriptInterface(this, "$App");//添加js监听 这样html就能调用客户端


        webview.loadUrl("file:///android_asset/echart/xs_tab1.html");
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                showProgress("");
            }


            @Override
            public void onPageFinished(WebView view, String url) {
                dismissProgress();
                postData1();  //向vue页面传值
            }
        });
    }
    //向vue页面传值
     public void postData1() {
        showProgress("");
        Map<String, String> params = new HashMap<>();
        params.put("pid", data.getId() + "");

        MyOkHttp.get().post(mContext, Api.nkgxmjdgl_jh, params, new GsonResponseHandler<JHBean>() {

            @Override
            public void onSuccess(int statusCode, JHBean response) {
                dismissProgress();
                if (response.isSuccess()) {
                    if (response.getData().size() > 0) {
                        Gson g = new Gson();
                        String value = g.toJson(response.getData());
                        webview.loadUrl("javascript:getAndroidValue('" + value + "')");
                    } else {
                        String value = "";
                        webview.loadUrl("javascript:getAndroidValue('" + value + "')");
                    }

                } else {
                    String value = "";
                    webview.loadUrl("javascript:getAndroidValue('" + value + "')");
                }
            }

            @Override
            public void onFailure(int statusCode, String error_msg) {
                dismissProgress();
            }

        });
    }

		//接收 vue 点击事件传过来的值
    @JavascriptInterface
    public void getDataFormVue(String msg) {
        //做原生操作
        Intent intent = new Intent(mContext,  ListActivity.class);
        intent.putExtra("menuName", msg);
        startActivity(intent);
    }

2.vue 页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title></title>
		<script src="./js/vue.js" type="text/javascript" charset="utf-8"></script>
		<!-- 引入样式 -->
		<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
		<!-- 引入组件库 -->
		<script src="https://unpkg.com/element-ui/lib/index.js"></script>
	</head>
	<body>
		<div id="app">
			<el-table :data="tableData" border style="width: 100%" @row-click="clickData">
				<el-table-column prop="name" label="企业类型" align="center">
				</el-table-column>
				<el-table-column prop="num1" label="开票金额(万元)" align="center">
				</el-table-column>
				<el-table-column prop="num2" label="占外资企业比重" align="center">
				</el-table-column>
			</el-table>
		</div>
	</body>

	<script>
		var app = new Vue({
			el: '#app',
			created() {
				// 把本地方法挂载到window中
				window.getAndroidValue = this.getAndroidValue

			},
			data: {
				msg: '',
				token: '',
				tableData: [{
						"id": 21,
						"name": "上市企业",
						"num1": "838.81",
						"num2": "100%"
					}, {
						"id": 22,
						"name": "省级外资跨国公司地区总部或功能性机构",
						"num1": "838.81",
						"num2": "100%"
					}, {
						"id": 23,
						"name": "省专精特新“小巨人”企业",
						"num1": "838.81",
						"num2": "100%"
					}, {
						"id": 24,
						"name": "市专精特新“小巨人”企业",
						"num1": "838.81",
						"num2": "100%"
					},
					{
						"id": 24,
						"name": "省级示范智能车间",
						"num1": "838.81",
						"num2": "100%"
					},
					{
						"id": 24,
						"name": "市级示范智能车间",
						"num1": "838.81",
						"num2": "100%"
					},
					{
						"id": 24,
						"name": "省级工程研究中心(发改)",
						"num1": "838.81",
						"num2": "100%"
					},
					{
						"id": 24,
						"name": "省级企业技术中心(工信)",
						"num1": "838.81",
						"num2": "100%"
					},
					{
						"id": 24,
						"name": "市级企业技术中心(工信)",
						"num1": "838.81",
						"num2": "100%"
					},
					{
						"id": 24,
						"name": "省星级上云企业",
						"num1": "838.81",
						"num2": "100%"
					}
				]
			},
			methods: {
				// 接收Android传过来的值方法
				getAndroidValue(value) {
					this.tableData = JSON.parse(value);
				},
				clickData(row, event, column) {
					console.log(row.name)
					this.toAndroid(row)
				},
				// 向Android传值方法
				toAndroid(row) {
					$App.getDataFormVue(row.name)
				},
			},
		})
	</script>

</html>

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:06:35  更:2022-05-21 19:06:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:41:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码