Cordova源码解析(2)_CordovaActivity分析

上一篇讲述了cordova工程的创建,并成功运行起来,那cordova是如何加载html页面的,本文就来详细分析一下。

MainActivity 分析

App的入口是MainActivity,打开MainActivity可以看到是继承于CordovaActivity,在onCreate中的loadUrl方法和launchUrl属性都是从CordovaActivity中继承来的,所以CordovaActivitycordova的入口。

public class MainActivity extends CordovaActivity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        // enable Cordova apps to be started in the background
        // 获取外部传来的数据
        Bundle extras = getIntent().getExtras();
        if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
   
            moveTaskToBack(true);
        }
        // 加载html
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    }
}

CordovaActivity 分析

一、OnCreate方法
进入CordovaActivity 类,可以看到CordovaActivity继承于Activity,这个类主要是完成对cordova的基本配置和初始化工作,根据Activity的生命周期,先从OnCreate开始分析:
1、在OnCreate中第一个方法是loadConfig方法,如下所示:

protected void loadConfig() {
   
    ConfigXmlParser parser = new ConfigXmlParser();
    parser.parse(this);
    preferences = parser.getPreferences();
    preferences.setPreferencesBundle(getIntent().getExtras());
    launchUrl = parser.getLaunchUrl();
    pluginEntries = parser.getPluginEntries();
    Config.parser = parser;
}

loadConfig方法首先初始化了ConfigXmlParser类,而ConfigXmlParser的主要属性和方法有:

  • CordovaPreferences类:负责解析config.xml<preference name="loglevel" value="DEBUG" />节点;
  • launchUrl属性值:默认是file:///android_asset/www/index.html
  • setStartUrl方法:判断config.xml中是否配置了<content src="index.html" />;
  • parse方法:解析了res/xml目录下的config.xml文件

2、初始化完配置,接着初始化日志,设置日志级别。

String logLevel = preferences.getString("loglevel", "ERROR"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ruiurrui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值