CrossWalk的XWalkView Angular2js 自制Android Studio浏览器

1.前言
XWalkView是Crosswalk提供的webview,可用于替代系统原生的webview
公司做的网页是用Angular2js,导致在原生android 的webview运行不起来
腾讯的x5内核也运行不起来,最后偶然发现CrossWalk的XWalkView

2.使用步骤
在app的build.gradle中,添加maven地址和complie

648808A8-06FF-482E-86E9-C092C42F5FDD.png
  1. ndk {
    abiFilters "armeabi-v7a"
    }
  2. repositories {
    maven { url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2' }
    }
  3. compile 'org.xwalk:xwalk_core_library:23.53.589.4'

4.添加权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

5.MainActivity

package com.tuojie.webview;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.Toast;
import org.xwalk.core.XWalkView;

public class MainActivity extends AppCompatActivity {
private XWalkView mXWalkView;
private long lastClickBackTime;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //取消状态栏
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
    mXWalkView = (XWalkView) findViewById(R.id.webview);

    mXWalkView.getNavigationHistory().clear();  //清除历史记录
    mXWalkView.setDrawingCacheEnabled(false);   //不使用缓存
    mXWalkView.clearCache(true);                //清楚包括磁盘缓存
    mXWalkView.load("-----", null);         //写入要加载的网址
}

@Override
protected void onPause() {
    super.onPause();
    if (mXWalkView != null) {
        mXWalkView.pauseTimers();
        mXWalkView.onHide();
    }
}

@Override
protected void onResume() {
    super.onResume();
    if (mXWalkView != null) {
        mXWalkView.resumeTimers();
        mXWalkView.onShow();
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (mXWalkView != null) {
        mXWalkView.onDestroy();
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (mXWalkView != null) {
        mXWalkView.onActivityResult(requestCode, resultCode, data);
    }
}

@Override
protected void onNewIntent(Intent intent) {
    if (mXWalkView != null) {
        mXWalkView.onNewIntent(intent);
    }
}

//监听返回键
@Override
public void onBackPressed() {
    if (System.currentTimeMillis() - lastClickBackTime > 2000) { // 后退阻断
        Toast.makeText(getApplicationContext(),"再点一次退出应用",Toast.LENGTH_LONG).show();
        lastClickBackTime = System.currentTimeMillis();
    } else { // 关掉app
        super.onBackPressed();
    }
}

}

Sum:有问题欢迎您指教,谢谢你

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,018评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,489评论 2 45
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 1.如何设置定时任务? 执行命令:crontab -e打开如下文件,修改后保存即可SHELL=/bin/sh PA...
    布布爸阅读 251评论 0 0
  • 又见老屋 你静静地矗立在塬畔 像一位饱经沧桑的老人 任由阔别已久的孩子 在你的怀里打滚儿撒欢 屋顶的瓦片爬满青苔 ...
    小蔷1982阅读 178评论 0 3