安卓通过Build Variants定制多个App以及WebView访问https

1.无图无真相

在这里插入图片描述在这里插入图片描述
切换对应的项目运行出多个APP(其实只是图标和http请求变了,其他的各位看官可自行添加)

2.首先配置app下的build.gradle文件

在这里插入图片描述

defaultConfig {
        ......//这个表示原来就有的配置,防止小白一股脑的黏贴进去
        /**
         * 这句很重要
         * Gradle 会结合使用您定义的每个类型维度的产品类型配置以及 Build 类型配置,以创建最终的构建变体
         */
        flavorDimensions "versionCode"
    }
android {
      ......
    defaultConfig {
       ......
        /**
         * 这句很重要
         * Gradle 会结合使用您定义的每个类型维度的产品类型配置以及 Build 类型配置,以创建最终的构建变体
         */
        flavorDimensions "versionCode"
    }
    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            minifyEnabled false
            /* shrinkResources true//去掉不使用的资源
            signingConfig signingConfigs.release*/
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        //解决中英文同时存在时打包问题,下面这句表示把translate引起的warning屏蔽掉,不要妨碍APK的生成
        disable 'MissingTranslation'
        //  true--所有正式版构建执行规则生成崩溃的lint检查,如果有崩溃问题将停止构建
        checkReleaseBuilds false
        // true--错误发生后停止gradle构建
        abortOnError false
    }
    productFlavors {
        flavorOne{
            applicationId 'com.one.test'
            versionCode 1
            versionName "1.0.0.200526"
            manifestPlaceholders = [appName  : "天字一号"
            ]
        }
        flavorTwo {
            applicationId 'com.two.test'
            versionCode 1
            versionName "1.0.0.200526"
            manifestPlaceholders = [appName  : "天字二号"

            ]
        }
        flavorThree {
            applicationId 'com.three.test'
            versionCode 1
            versionName "1.0.0.200526"
            manifestPlaceholders = [appName  : "天字三号"
            ]
        }
    }
}

3.Src目录下创建对应的文件夹

在这里插入图片描述
这里的三个文件夹名对应的build.gradle下的,productFlavors 里面的文件名

4.开始愉快的编写代码

在这里插入图片描述在刚才创建的三个文件夹下的api的包下面分别创建Api.java类:

public class Api {
    //特简单的一个类,这边你可以根据你自己的需求在这里面加上三个APP共有的东西。
    public static final String TextUrl="https://www.163.com/";
}

然后编写MainActivity类(xml布局就一个WebView就不贴出来了):

public class MainActivity extends AppCompatActivity {
    private WebView webView;

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);//支持javascript自定义对象
        //WebView是可以在一个安全的站点(Https)里加载非安全的站点内容(Http)
        webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        //解决webView无法访问https地址
        webView.setWebViewClient(new WebViewClient() {
                                     @Override
                                     public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                                         handler.proceed();//忽略SSL证书错误,继续加载页面
                                     }
                                 }
        );
        webView.loadUrl(Api.TextUrl);//这里的这个Api就是上一步三个文件夹里面的内容

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
//        在 Activity 销毁的时候,将 WebView 置空 防止内存泄漏
        if (webView != null) {
            webView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
            webView.clearHistory();
            ((ViewGroup) webView.getParent()).removeView(webView);
            webView.destroy();
            webView = null;
        }
    }
}

有问题可以一起探讨 QQ 2872960735

5.完结撒花

创作不易,欢迎一键三连(评论,点赞,关注)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值