赞
踩
Android 用腾讯X5内核加载 word ppt 先下载在加载。
- /**
- * 任务类
- */
- private class DownloaderTask extends AsyncTask<String, Void, String> {
-
- @Override
- protected String doInBackground(String... params) {
-
- String url = "下载地址";
- String fileName = url.substring(url.lastIndexOf("/") + 1);
- try {
- fileName = URLDecoder.decode(fileName, "UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- // MyLogger.i("download", "fileName=" + fileName);
- try {
- URL resUrl = new URL(url);
- HttpURLConnection conn = (HttpURLConnection) resUrl.openConnection();
- conn.connect();
- InputStream input = conn.getInputStream();
- DownloadUtils.writeToSDCard(fileName, input);
- input.close();
- return fileName;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- @Override
- protected void onCancelled() {
- super.onCancelled();
- }
-
- @Override
- protected void onPostExecute(String result) {
- super.onPostExecute(result);
- DownloadUtils.closeProgressDialog();
- if (result == null) {
- // ToastUtils.showShortToast(ClassroomlearningActivity.this, R.string.msg_downloaderror);
- return;
- }
- // ToastUtils.showShortToast(ClassroomlearningActivity.this, R.string.msg_downloadsuccess);
- String dir = DownloadUtils.getDownloadPath() + result;
-
- //下载完 跳转到 WabActivitry 页面 使用 TbsReaderView 加载 H5
-
- startActivity(new Intent(getBaseContext(), WabActivitry.class).putExtra("path", dir));
-
-
- // Wps.createInstance(ClassroomlearningActivity.this).open(new File(dir));
-
- }
-
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- DownloadUtils.showProgressDialog(ClassroomlearningActivity.this);
- }
-
- @Override
- protected void onProgressUpdate(Void... values) {
- super.onProgressUpdate(values);
- }
-
- }
第三步 根据路径加载 Wabview
- layout 和 xml代码
-
-
- <RelativeLayout
-
- android:id="@+id/X5TbsView"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/colorPrimary"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintRight_toRightOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
-
- 调用代码
-
- public void displayFile(String fileModel) {
- mTbsReaderView = new TbsReaderView(this, this);
- //增加下面一句解决没有TbsReaderTemp文件夹存在导致加载文件失败
- String bsReaderTemp = tbsReaderTemp;
-
- // Log.i("eeee","tbsReaderTemp"+bsReaderTemp);
- File bsReaderTempFile = new File(bsReaderTemp);
-
- if (!bsReaderTempFile.exists()) {
- Log.d("print", "文件不存在准备创建/TbsReaderTemp!!");
- boolean mkdir = bsReaderTempFile.mkdir();
- if (!mkdir) {
- Log.d("print", "创建/TbsReaderTemp失败!!!!!");
- }
- Toast.makeText(this, "文件不存在!", Toast.LENGTH_SHORT).show();
- }
- mRelativeLayout.addView(mTbsReaderView, new RelativeLayout.LayoutParams(-1, -1));
- Bundle bundle = new Bundle();
- bundle.putString("filePath", fileModel);
- bundle.putString("tempPath", "" + getIntent().getStringExtra("name"));
- boolean result = mTbsReaderView.preOpen(getFileType("" + fileModel), false);
- Log.d("print", "查看文档---" + result);
- if (result) {
-
-
- mTbsReaderView.openFile(bundle);
- } else {
-
- }
- }
-
-
- private String getFileType(String paramString) {
- String str = "";
-
- if (TextUtils.isEmpty(paramString)) {
- Log.d("print", "paramString---->null");
- return str;
- }
- Log.d("print", "paramString:" + paramString);
- int i = paramString.lastIndexOf('.');
- if (i <= -1) {
- Log.d("print", "i <= -1");
- return str;
- }
-
- str = paramString.substring(i + 1);
- Log.d("print", "paramString.substring(i + 1)------>" + str);
- return str;
- }
-
- //消失记得销毁
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (mTbsReaderView != null) {
- mTbsReaderView.onStop();
- mTbsReaderView.destroyDrawingCache();
- }
- }
3. 切记初始化 X5内核
- public class Myapp extends Application {
- @Override
- public void onCreate() {
- super.onCreate();
-
-
- ;
- //x5内核初始化接口
- QbSdk.initX5Environment(getApplicationContext(), cb);
-
- }
-
- /**
- * 搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
- */
- QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
-
- @Override
- public void onViewInitFinished(boolean arg0) {
- //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
- Log.e("APPAplication", " onViewInitFinished is " + arg0);
- }
-
- @Override
- public void onCoreInitFinished() {
- Log.e("APPAplication", " onCoreInitFinished");
- }
- };
-
- }
demo 下载地址
https://download.csdn.net/download/qq_35742975/16333207
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。