Android安卓webview,网页端生成安卓项目(极速生成)教程

news2024/12/27 9:35:25

Android安卓webview,网页端生成安卓项目(极速生成)教程

一,前言

当自己做了一个PC端的页面,也就是前端的页面,或者已经上服的页面,但也想生成一个安卓端供用户使用,本教程详细讲解如何把前端html页面或者链接生成安卓端项目。

本教程仅限至于已经上服务器的项目(若项目没有上服,看文末提供上服)。

二,步骤(代码中已有详细的注释)

1.创建一个空安卓项目

image-20230828145645159

2.修改MainActivity.java文件

注意修改webView.loadUrl(“http:自己的项目地址”);中的地址

package com.example.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }

    private void init() {
        // 从布局文件中获取 WebView 控件
        webView = (WebView) findViewById(R.id.webView);

        // 获取 WebView 的 WebSettings(Web 设置)对象
        WebSettings ws = webView.getSettings();

        // 设置布局算法为 NORMAL,会引起 WebView 的重新布局
        ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);

        // 自动加载图片资源
        ws.setLoadsImagesAutomatically(true);

        // 允许 JavaScript 打开新的窗口
        ws.setJavaScriptCanOpenWindowsAutomatically(true);

        // 允许执行 JavaScript 脚本
        ws.setJavaScriptEnabled(true);

        // 支持 HTML 的 "viewport" 标签或者使用 wide viewport
        ws.setUseWideViewPort(true);

        // 缩小内容以适应屏幕宽度
        ws.setLoadWithOverviewMode(true);

        // 启用定位功能
        ws.setGeolocationEnabled(true);

        // 启用应用缓存
        ws.setAppCacheEnabled(true);

        // 启用 DOM 存储 API
        ws.setDomStorageEnabled(true);

        // 请求焦点,用于处理用户输入事件
        webView.requestFocus();

        // 检查是否可以前进或后退到不同的页面
        webView.canGoForward();
        webView.canGoBack();

        // 加载指定的 URL
        webView.loadUrl("http:自己的项目地址");

        // 覆盖 WebView 默认行为,使网页在 WebView 中打开
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // 返回值为 true 时在 WebView 中打开链接,为 false 调用系统浏览器或其他浏览器
                view.loadUrl(url);
                return true;
            }
        });
    }
}

这段代码实现了以下功能:

  1. 在布局中找到 WebView 控件并获取它的 WebSettings(Web 设置)。
  2. 配置 WebView 的各种属性,例如允许 JavaScript 执行、自动加载图片、设置布局算法、启用缓存等。
  3. 请求焦点,以便 WebView 可以处理用户输入事件。
  4. 检查 WebView 是否可以前进或后退到不同的页面。
  5. 使用 loadUrl 方法加载指定的 URL。
  6. 通过设置 WebViewClient 覆盖默认行为,使得所有链接都在 WebView 中打开。

这段代码的主要目的是在 Android 应用中创建一个内置浏览器,以显示指定 URL 的网页内容。

3.修改activity_main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <WebView
        android:id="@+id/webView"
        android:layout_below="@+id/text_endLoading"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="10dp" />
</LinearLayout>

4.修改AndroidManifest.xml文件

注意:我这里的android:icon="@drawable/logo"用的是自己的,需要修改app的logo地址

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.test">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@drawable/logo"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        tools:targetApi="31">

        <activity
            android:name="com.example.myapplication.MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

5.运行

之后连接手机运行即可

image-20230828144957476

三,上服

存在部分本地的项目,但是这种情况下是不能部署到安卓端的,需要把本地的项目部署到服务器,自己查

或私信作者(可以供服务器部署前端页面,仅杯奶茶钱)

(v)15135757306

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/962674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

九种情况,要知道灵活变通

九种情况&#xff0c;要知道灵活变通 【安志强趣讲《孙子兵法》第27讲】 第八篇&#xff1a;九变 【全篇大白话】 战场千变万化&#xff0c;胜败看实力&#xff0c;还要看将帅的应变能力。 【原文】 孙子曰&#xff1a;凡用兵之法&#xff0c;将受命于君&#xff0c;合军聚众&a…

解决计算机视觉模型中的种族和性别偏见问题,Meta开源 FACET工具

Meta 公司最新推出的 FACET 工具是为了解决计算机视觉模型中存在的种族和性别偏见问题。该工具经过三万张图片的训练&#xff0c;并含有五万人的图像&#xff0c;特别强调了性别和肤色方面的感知能力。 通过评估计算机视觉模型在不同特征上的表现&#xff0c;FACET 工具可以回答…

vscode远程调试php

使用vscode远程调试php的方法 1.安装remote ssh插件 2.连接服务器 可以点击左下角的绿色按钮&#xff0c;或者ctrlshiftp打开命令框输入remote ssh应该也有。 3.在服务器端vscode安装php debug插件 4.安装xdebug xdebug是用来调试php的软件&#xff0c;原本和vscode没什么关…

无涯教程-JavaScript - GAMMADIST函数

GAMMADIST函数取代了Excel 2010中的GAMMA.DIST函数。 描述 该函数返回伽马分布。您可以使用此功能来研究可能具有偏斜分布的变量。伽马分布通常用于排队分析。 语法 GAMMADIST(x,alpha,beta,cumulative)争论 Argument描述Required/OptionalXThe value at which you want t…

Ubuntu18.04安装docker-io

1. 安装docker 1.1 网上一搜&#xff0c;全是更新仓库、下载依赖、添加docker的gpg密钥、添加docker仓库、安装docker-ce的步骤&#xff0c;但是在安装docker-ce时却提示“package "docker-ce" has no installation candidate”&#xff0c;就很迷。 1.2 安装docke…

设计模式-建造者(生成器)模式

文章目录 简介建造者模式的核心概念产品&#xff08;Product&#xff09;建造者&#xff08;Builder&#xff09;指挥者&#xff08;Director&#xff09;建造者模式与其他设计模式的关系工厂模式和建造者模式uml对比 建造者模式的实现步骤建造者模式的应用场景spring中应用 建…

【类与对象】②认识类的六个默认函数

文章目录 1.类的六个默认函数2.构造函数3.析构函数4.拷贝构造函数5.赋值运算符重载6.const成员 1.类的六个默认函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动…

算法通关村14关 | 数据流中位数问题

1. 数据流中位数问题 题目 LeetCode295: 中位数是有序列表中间的数&#xff0c;如果列表长度是偶数&#xff0c;中位数是中间两个数的平均值&#xff0c; 例如:[2,3,4]的中位数是3&#xff0c; [2,3]中位数是&#xff08;23&#xff09;/ 2 2.5 设计一个数据结构&#xff1a; …

使用python对光谱进行lorentz峰值拟合并作图(标注峰值点位)

承接&#xff1a; 使用python对光谱进行lorentz峰值拟合 接下来是对图象的处理&#xff0c;即作图。 import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit# 定义Lorentzian函数 def lorentzian(x, x0, A, gamma):return A * gamma**2…

外贸企业如何借助CRM提升企业发展?

外贸企业竞争激烈&#xff0c;提高自身竞争力&#xff0c;扩大海外业务市场&#xff0c;是每个外贸企业的目标。为了实现这一目标&#xff0c;不少外贸企业借助CRM系统&#xff0c;优化业务流程&#xff0c;管理维护客户&#xff0c;从而实现可持续发展。那么&#xff0c;外贸企…

git 忽略已经提交的文件或文件夹 (修改.gitignore文件无效)

场景描述&#xff1a;项目开发到一半&#xff0c;追加了模块&#xff0c;提交的时候未注意将不需要提交的文件或者目录提交到.gitignore&#xff0c;然后提交后发现再修改git配置文件已无法阻拦更新&#xff0c;查阅官方资料&#xff1a; 核心点&#xff1a;.gitignore 之前&a…

大数据之hadoop入门

大数据概念 大数据&#xff1a;无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现李和流程优化能力的海量、高增长率和多样化的信息资产。 大的概念是相对来说的&#xff1a;目前来说&#xff0…

基于51单片机的SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿真程序原理图报告讲解视频&#xff09; 讲解视频1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&下载链接 51单片机SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿…

实现跨境电商测评和采退、LU卡、LU货最安全的系统方案

首先你要有一个稳定的测评环境系统&#xff0c;这个是做自养号退款、撸货、撸卡的基础。测评环境系统有很多&#xff0c;从早期的虚拟机&#xff0c;模拟机&#xff0c;云手机&#xff0c;VPS等等。这些系统方案先不说成本高&#xff0c;最重要的是成功率很低&#xff0c;所以一…

Git和Github的基本用法

目录 背景 下载安装 安装 git for windows 安装 tortoise git 使用 Github 创建项目 注册账号 创建项目 下载项目到本地 Git 操作的三板斧 放入代码 三板斧第一招: git add 三板斧第二招: git commit 三板斧第三招: git push 小结 &#x1f388;个人主页&#xf…

基于单片机的串行通信发射机设计

一、项目介绍 串行通信是一种常见的数据传输方式&#xff0c;允许将数据以比特流的形式在发送端和接收端之间传输。当前实现基于STC89C52单片机的串行通信发射机&#xff0c;通过红外发射管和接收头实现自定义协议的数据无线传输。 二、系统设计 2.1 单片机选择 在本设计中&…

黑马 大事件项目 笔记

学习视频&#xff1a;黑马 Vue23 课程 后台数据管理系统 - 项目架构设计 在线演示&#xff1a;https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径&#xff1a; http:/…

系统架构技能之设计模式-抽象工厂模式

一、上篇回顾 上篇我们主要讲述了简单工厂模式和工厂模式。并且分析了每种模式的应用场景和一些优缺点&#xff0c;我们现在来回顾一下&#xff1a; 简单工厂模式&#xff1a;一个工厂负责所有类型对象的创建&#xff0c;不支持无缝的新增新的类型对象的创建。 工厂模式&…

系统架构技能之设计模式-工厂模式

一、开篇 本文主要是讲述设计模式中最经典的创建型模式-工厂模式&#xff0c;本文将会从以下几点对工厂模式进行阐述。 本文将会从上面的四个方面进行详细的讲解和说明&#xff0c;当然会的朋友可以之处我的不足之处&#xff0c;不会的朋友也请我们能够相互学习讨论。 二、摘…

学习心得06:Halcon

据说实际场景中&#xff0c;使用Halcon的多。功能上跟OpenCV差不多&#xff0c;轮廓&#xff0c;线条&#xff0c;边缘&#xff0c;连通&#xff0c;滤波&#xff0c;深度学习等。 需要了解的是&#xff0c;如何与其他语言对接。这当然也不难&#xff0c;人家早就考虑好了。 看…