• Android开发第二步(全屏嵌套H5页面)


    好久不见!这些躺平的日子里面,你们还好吗?磨磨蹭蹭好久开始Android开发第二步(全屏嵌套H5页面)那就直接来咯!

    第一步:

    搭建项目,不会的可以参照这个(Android开发第一步_ZBY52031的博客-CSDN博客)说明一下这个是我之前用AS搭建的,以下项目我都开始用IntelliJ IDEA(安装太多开发软件了,电脑不行了!就全部都卸载,留一个YYDS)

    第二步:

    找一个想嵌套H5页面(https://www.baidu.com/)

    第三步:

    嵌套进去(这样说!好怕被打死~~)正题!怎么嵌套进去?当然是写代码咯!

    我这简单放个图,小白看一下!可以更好的了解项目结构

     下面细说一下第三步:

    a.修改activity_main.xml,下面就直接放整个文件代码!对比一下就把之前的TextView注释,放了一个WebView而已

    1. <androidx.constraintlayout.widget.ConstraintLayout
    2. xmlns:android="http://schemas.android.com/apk/res/android"
    3. xmlns:tools="http://schemas.android.com/tools"
    4. xmlns:app="http://schemas.android.com/apk/res-auto"
    5. android:layout_width="match_parent"
    6. android:layout_height="match_parent"
    7. tools:context=".MainActivity">
    8. <WebView
    9. android:id="@+id/webview"
    10. android:layout_width="match_parent"
    11. android:layout_height="match_parent"/>
    12. androidx.constraintlayout.widget.ConstraintLayout>

    b.修改MainActivity.java(有可能写代码真的很难命名?我看的出来这两个命名就换了位置)

    1. package com.example.myapplication;
    2. import android.content.Intent;
    3. import android.net.Uri;
    4. import android.webkit.WebSettings;
    5. import android.webkit.WebView;
    6. import android.webkit.WebViewClient;
    7. import androidx.appcompat.app.AppCompatActivity;
    8. import android.os.Bundle;
    9. public class MainActivity extends AppCompatActivity {
    10. // 注释之前的代码
    11. // @Override
    12. // protected void onCreate(Bundle savedInstanceState) {
    13. // super.onCreate(savedInstanceState);
    14. // setContentView(R.layout.activity_main);
    15. // }
    16. @Override
    17. protected void onCreate(Bundle savedInstanceState) {
    18. super.onCreate(savedInstanceState);
    19. setContentView(R.layout.activity_main);
    20. WebView webview = findViewById(R.id.webview);
    21. WebSettings webSettings = webview.getSettings();
    22. webSettings.setDomStorageEnabled(true);
    23. webSettings.setJavaScriptEnabled(true);
    24. webSettings.setBlockNetworkImage(false);
    25. // 覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
    26. webview.setWebViewClient(new WebViewClient() {
    27. @Override
    28. public boolean shouldOverrideUrlLoading(WebView view, String url) {
    29. // view.loadUrl(url);
    30. // return true;
    31. if (url.startsWith("http:") || url.startsWith("https:") || url.startsWith("ftp")) {
    32. view.loadUrl(url);
    33. return true;
    34. } else if (url.startsWith("scheme://")) {
    35. // 使用浏览器打开
    36. Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    37. startActivity(intent);
    38. return true;
    39. } else {
    40. return false;
    41. }
    42. }
    43. });
    44. webview.loadUrl("https://www.baidu.com/");
    45. }
    46. }

    注意:WebView这块findViewById(R.id.webview),对应的是你activity_main.xml放的WebView【android:id="@+id/webview"】webSettings设置的三个应该很容易懂吧!那就不解释了。这样搞完感觉好像可以了,实际上还有一丢丢问题!

    你运行可能会页面异常 出现Webpage not available,当然出现问题就解决问题!

    c.修改AndroidManifest.xml

    1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    2. package="com.example.myapplication">
    3. <uses-permission android:name="android.permission.INTERNET"/>
    4. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    5. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    6. <application
    7. android:allowBackup="true"
    8. android:icon="@mipmap/ic_launcher_tq"
    9. android:label="@string/app_name"
    10. android:roundIcon="@mipmap/ic_launcher_round_tq"
    11. android:supportsRtl="true"
    12. android:theme="@style/Theme.MyApplication"
    13. android:usesCleartextTraffic="true"
    14. >
    15. <activity
    16. android:name=".MainActivity"
    17. android:exported="true">
    18. <intent-filter>
    19. <action android:name="android.intent.action.MAIN"/>
    20. <category android:name="android.intent.category.LAUNCHER"/>
    21. intent-filter>
    22. activity>
    23. application>
    24. manifest>

    这样就OK了!最后备注一个怎么修改APP名称和logo(修改AndroidManifest.xml)找到下面三句代码修改

    1. android:icon="@mipmap/ic_launcher_tq"
    2. android:label="@string/app_name"
    3. android:roundIcon="@mipmap/ic_launcher_round_tq"

    修改App名称和logo的时候!推荐两个在线工具
    https://www.bejson.com/ui/borderradius/
    https://onlineconvertfree.com/zh/convert-format/jpg-to-webp/

    最后放一个我做的示例!检验一下我通过WebView学的怎么样吧!

    链接:https://pan.baidu.com/s/1xJoYDsHcpHx8uctDLRym-w?pwd=g2fj 提取码:g2fj 复制这段内容后打开百度网盘手机App,操作更方便哦

    抱歉!忘了一个全屏!找values文件夹下面的样式文件修改,我的这个文件名叫themes.xml,但是我看有些版本或者开发软件可能会导致名称不一样,所以你们要改的时候要注意看代码

    1. <resources xmlns:tools="http://schemas.android.com/tools">
    2. <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    3. <item name="colorPrimary">@color/purple_500item>
    4. <item name="colorPrimaryVariant">@color/purple_700item>
    5. <item name="colorOnPrimary">@color/whiteitem>
    6. <item name="colorSecondary">@color/teal_200item>
    7. <item name="colorSecondaryVariant">@color/teal_700item>
    8. <item name="colorOnSecondary">@color/blackitem>
    9. <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariantitem>
    10. style>
    11. resources>

    主要是下面两句,我把原有的注释了(下期写一个style说明文)

    1. <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.NoActionBar">
  • 相关阅读:
    笔记本摄像头怎么打开?记牢这5个简单方法!
    基于LLVM的AFL分析
    【HBZ分享】TCP可靠性传输如何保证的?以及传输优化之Nagle算法
    IO流-数据流
    【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
    c语言练习76: 找出中枢整数
    SAP-MM-批量扩充视图
    java计算机毕业设计机械生产企业办公设备管理系统源码+mysql数据库+系统+lw文档+部署
    JavawebJAVAJSP网吧计费管理系统(JSP网吧管理系统)网吧收费管理系统网吧自动计费管理系统
    【Pytorch】torch.nn.LeakyReLU()
  • 原文地址:https://blog.csdn.net/ZBYTSL/article/details/126048229