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

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

  • 1.无图无真相
  • 2.首先配置app下的build.gradle文件
  • 3.Src目录下创建对应的文件夹
  • 4.开始愉快的编写代码
  • 5.完结撒花

1.无图无真相

安卓通过Build Variants定制多个App以及WebView访问https_第1张图片安卓通过Build Variants定制多个App以及WebView访问https_第2张图片
切换对应的项目运行出多个APP(其实只是图标和http请求变了,其他的各位看官可自行添加)

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

安卓通过Build Variants定制多个App以及WebView访问https_第3张图片

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 Variants定制多个App以及WebView访问https_第4张图片
这里的三个文件夹名对应的build.gradle下的,productFlavors 里面的文件名

4.开始愉快的编写代码

安卓通过Build Variants定制多个App以及WebView访问https_第5张图片在刚才创建的三个文件夹下的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.完结撒花

创作不易,欢迎一键三连(评论,点赞,关注)
安卓通过Build Variants定制多个App以及WebView访问https_第6张图片

你可能感兴趣的:(Android)