进阶

自定义文档样式

  • 创建用于展示文档的 activity, 如命名为 CustomDocShowActivity,在 onCreate 回调中接收 SDK 传入的文件相关参数,用户后续打开操作。

    ...
     Intent intent = getIntent();
     //文件路径,作为传入FileReaderView的path参数
     String filePath = intent.getStringExtra(PreviewConfig.PARAM_FILE_PATH); 
     //文件名称, 业务根据需要获取
     String fileName = intent.getStringExtra(PreviewConfig.PARAM_FILE_NAME);
     //文档的url,业务根据需要获取
     String fileUrl = intent.getStringExtra(PreviewConfig.PARAM_FILE_URL);
     if(TextUtils.isEmpty(filePath)){ 
        //如果文件路径为空,表示文档没有加载完成,可以注册监听器,监听文档加载完成后再打开文档
         PreviewDocImpl.setProgressListener(this);
     }else{ //如果文件路径不为空,表示文档已加载完成,可以直接打开
         showFile(filePath);
     }
     ...
    
  • 实现进度监听接口 IFileLoadingListener,并设置给 PreviewDocImpl。

    定义

    public interface IFileLoadingListener {
    
    /**
     * 文件加载失败
     * @param url  文件的url
     */
    void loadingFail(String url);
    
    /**
     * 加载进度回调
     * @param progress  进度([0,1])
     */
    void loadingProgress(float progress);
    
    /**
     * 加载完成
     * @param url 文件的url
     * @param path 本地存储路径
     */
    void loadingFinish(String url, String path);
    
    }
    

    example

    public class CustomDocShowActivity extends TopBarActivity implements IFileLoadingListener {
    ...
    
    @Override
    public void loadingFail(String url) {
        Toast.makeText(this, "加载文件失败", Toast.LENGTH_LONG).show();
    }
    
    @Override
    public void loadingProgress(float progress) {
        Log.i(TAG, "loadingProgress progress =  " + progress);
    }
    
    @Override
    public void loadingFinish(String url, String path) {
        showFile(path); //加载完成后打开文档
    }
    }
    
    PreviewDocImpl.setProgressListener(this);  //给sdk设置监听
    
  • 使用 FileReaderView 打开文档,传入 SDK 给的 path 参数。

    private void showFile(String filePath) {
        if (mFileReadView != null) {
            mFileReadView.show(filePath);
        }
    }
    
  • 在 onDestory() 中调用。

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mFileReadView != null) {
            mFileReadView.stop();
        }
        PreviewDocImpl.cancelLoading();
    }
    
  • 在组件初始化时,设置 CustomDocShowActivity.class 为自定义文档展示 ativity。

    webView.setDownloadListener(new PreviewDocImpl.Builder()
     .setActivity((Activity) context) //必须
     .setContentActivity(CustomDocShowActivity.class) //设置自定义文档展示Activity
     .create());
    

可参见 tmfdemo工程。

Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""