openFile static method

Future<String> openFile(
  1. String filePath, {
  2. String? local,
  3. String? style,
  4. String? topBarBgColor,
  5. String? menuData,
})

打开本地文件,暂不支持在线文件,可下载后再打开

filePath:文件路径。格式为 android 本地存储路径格式,例如:/sdcard/Download/xxx.doc. 不支持 file:///格式。暂不支持在线文件。

extraParams:miniqb 的扩展功能。为非必填项,可传入 null 使用默认设置。 其格式是一个 key 对应一个 value。在文件查看器的产品形态中,当前支持 的 key 包括:

local: “true”表示是进入文件查看器,如果不设置或设置为“false”,则进入 miniqb 浏览器模式。不是必 须设置项。

style: “0”表示文件查看器使用默认的 UI 样式。“1”表示文件查看器使用微信的 UI 样式。不设置此 key 或设置错误值,则为默认 UI 样式。

topBarBgColor: 定制文件查看器的顶部栏背景色。格式为“#xxxxxx”,例“#2CFC47”;不设置此 key 或设置 错误值,则为默认 UI 样式。

menuData: 该参数用来定制文件右上角弹出菜单,可传入菜单项的 icon 的文本,用户点击菜单项后,sdk 会通过 startActivity+intent 的方式回调。menuData 是 jsonObject 类型,结构格式如下: public static final String jsondata = "{ pkgName:"com.example.thirdfile", "

  • "className:"com.example.thirdfile.IntentActivity","
  • "thirdCtx: {pp:123},"
  • "menuItems:"
  • "["
  • "{id:0,iconResId:"+ R.drawable.ic_launcher +",text:"menu0"}, {id:1,iconResId:" + R.drawable.bookmark_edit_icon + ",text:"menu1"}, {id:2,iconResId:"+ R.drawable.bookmark_folder_icon +",text:"菜单2"}" + "]" +" }"; pkgName 和 className 是回调时的包名和类名。

thirdCtx 是三方参数,需要是 jsonObject 类型,sdk 不会处理该参数,只是在菜单点击事件发生的时候原样 回传给调用方。

menuItems 是 json 数组,表示菜单中的每一项。

Implementation

static Future<String> openFile(String filePath,
    {String? local,
    String? style,
    String? topBarBgColor,
    String? menuData}) async {
  if (defaultTargetPlatform == TargetPlatform.android) {
    final Map<String, String> params = <String, String>{
      'filePath': filePath,
      'local': local ?? "",
      'style': style ?? "",
      'topBarBgColor': topBarBgColor ?? "",
      'menuData': menuData ?? ""
    };
    return await _channel.invokeMethod("openFile", params);
  } else {
    return "$defaultTargetPlatform暂不支持";
  }
}