当前位置: 首页 > news >正文

做网站主流用什么语言域名申请后怎么建网站

做网站主流用什么语言,域名申请后怎么建网站,网络编程学校,erp企业管理系统平台作者持续关注 WPS二次开发专题系列#xff0c;持续为大家带来更多有价值的WPS开发技术细节#xff0c;如果能够帮助到您#xff0c;请帮忙来个一键三连#xff0c;更多问题请联系我#xff08;QQ:250325397#xff09; 目录 什么是FileUri 在SDK中的使用场景 打开文档时…作者持续关注 WPS二次开发专题系列持续为大家带来更多有价值的WPS开发技术细节如果能够帮助到您请帮忙来个一键三连更多问题请联系我QQ:250325397 目录 什么是FileUri 在SDK中的使用场景 打开文档时候 文档保存/事件时候 第三方应用中使用FileUri 什么是FileUri 若要安全地将应用中的文件提供给其他应用您需要配置应用以内容 URI 的形式提供文件的安全句柄。Android FileProvider 组件会根据您在 XML 中指定的内容生成文件的内容 URI。 详细请参考 WPS二次开发系列如何对打开文档路径FileUri授权 在SDK中的使用场景 打开文档时候 在SDK调用打开文档前需要主要将文件本地路径filePath转换成fileUri详见WPS二次开发系列如何对打开文档路径FileUri授权 文档保存/事件时候 文档保存/关闭事件在SDK的回调接口中均返回了WPS编辑保存后的文档路径(fileUri), 这个FileUri是WPS临时授权给第三方应用使用的FileUri那么该如何在其它第三方应用中使用呢 文档保存/关闭事件 FileApi fileApi WpsSdk.getInstance().getApi(FileApi.class); if (fileApi ! null) {fileApi.addEventListener(SingleOpenActivity.this, ApiEvent.DocumentAfterSave, new EventListener() {Overridepublic void onEvent(String eventName, Bundle bundle) {//注意在高版本Android系统中第三方应用是无法读取WPS私有路径需要通过获取WPS提供的URI来访问文档数据Uri currentFileUri bundle.getParcelable(CurrentFileUri);Log.d(WpsSdk, demo onEvent DocumentAfterSave : s s bundle bundle path path currentFileUricurrentFileUri);}});fileApi.addEventListener(SingleOpenActivity.this, ApiEvent.DocumentAfterClose, new EventListener() {Overridepublic void onEvent(String s, Bundle bundle) {Uri currentFileUri bundle.getParcelable(CurrentFileUri);Log.d(WpsSdk, demo onEvent DocumentAfterClose : s s bundle bundle path path currentFileUri currentFileUri);Utils.showToast(SingleOpenActivity.this, 文档路径 currentFileUri);}});//注意在调用文档打开之前进行注册fileApi.openFile(this, fileUri, bundle); }注意上面示例代码中返回的currentFileUri 就是WPS授权给第三方使用的文件路径 第三方应用中使用FileUri 那么如何在第三方应用中使用curentFileUri呢这里关键是需要通过 InputStream inputStream context.getContentResolver().openInputStream(uri); 来进行读写。 详见Demo使用参考根据SDK返回的currentFileUri路径将文件从WPS沙盒空间拷贝文件到第三方应用自己的私有空间如Android/data/包名/files/output/ 目录下 String outFile FileUtil.copyFileFromUri(MainActivity.this, fileUri, output); 完整拷贝工具类参考示例代码 package cn.wps.sdk.demo.util;import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.text.TextUtils;import java.io.Closeable; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.RandomAccessFile;public class FileUtil {private static final int IO_BUFFER_SIZE 8192;public static String getFileName(String filePath){if (null filePath)return null;return new File(filePath).getName();}/**** param uri 文件uri* param fileDir 沙盒目录 files/fileDir* return 沙盒路径*/public static String copyFileFromUri(Context context, Uri uri, String fileDir) {File dirFile getFileDir(context, fileDir);String fileName parseFileName(context, uri);String destPath dirFile.getAbsolutePath() File.separator fileName;if (new File(destPath).exists()) {new File(destPath).deleteOnExit();}InputStream inputStream null;try {inputStream context.getContentResolver().openInputStream(uri);} catch (FileNotFoundException e) {throw new RuntimeException(e);}if (copyFile(inputStream, destPath)) {return destPath;}return null;}public static boolean copyFile(InputStream in, String destPath){return copyFile(in, destPath, true);}public static boolean copyFile(InputStream in, String destPath, boolean closeInput){if (in null || destPath null)return false;File outFile new File(destPath);if (!prepareFilePath(outFile))return false;FileOutputStream os null;try{os new FileOutputStream(outFile);copy(in, os);return true;}catch (Exception e){e.printStackTrace();}finally{closeQuietly(os);if (closeInput) closeQuietly(in);}return false;}public static void copy(InputStream in, OutputStream out) throws IOException{copy(in, out, null);}public static void copy(InputStream in, OutputStream out, byte[] buffer) throws IOException{if (null buffer)buffer new byte[IO_BUFFER_SIZE];int read;while ((read in.read(buffer)) ! -1){out.write(buffer, 0, read);}}private static boolean prepareFilePath(File file){File parent file.getParentFile();assert parent ! null;if (parent.exists()) {return true;}return parent.mkdirs();}public static void closeQuietly(FileOutputStream out){if (null out)return;try {out.flush();try {out.getFD().sync(); // bug 314867} catch (Exception ignore) {}out.close();} catch (IOException ignore){}}public static void closeQuietly(Closeable closable){if (null closable)return;try {if (closable instanceof FileOutputStream){FileOutputStream _out (FileOutputStream)closable;_out.flush();try {_out.getFD().sync();} catch (Exception ignore) {}}else if (closable instanceof RandomAccessFile){RandomAccessFile _out (RandomAccessFile)closable;try {_out.getFD().sync();} catch (Exception ignore) {}}closable.close();} catch (IOException ignore){}}private static String parseFileName(Context context, Uri uri) {if (ContentResolver.SCHEME_FILE.equals(uri.getScheme())) {return StringUtil.getNamePart(uri.getPath());}String name queryDisplayName(context, uri);if (!TextUtils.isEmpty(name)) {return name;}name queryOtherColumn(context, uri);if (!TextUtils.isEmpty(name)) {return name;}if (TextUtils.isEmpty(name)) {String urlPath uri.getPath();String namePart StringUtil.getNamePart(urlPath);String extPart StringUtil.pathExtension(urlPath);if (!TextUtils.isEmpty(namePart) !TextUtils.isEmpty(extPart)) {name namePart;}}return name;}private static String queryDisplayName(Context context, Uri uri) {ContentResolver resolver context.getContentResolver();Cursor cur null;String name null;try {cur resolver.query(uri, new String[]{MediaStore.MediaColumns.DISPLAY_NAME}, null, null, null);if (cur ! null cur.getCount() 1 cur.moveToFirst()) {final int displayNameIndex cur.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME);if (displayNameIndex ! -1) {String displayName cur.getString(displayNameIndex);if (!TextUtils.isEmpty(displayName)) {String namePart StringUtil.getNamePart(displayName);String ext StringUtil.pathExtension(displayName);if (!TextUtils.isEmpty(namePart) !TextUtils.isEmpty(ext)) {name displayName.trim();}}}}} catch (Exception ignore) {} finally {if (cur ! null) {cur.close();}}return name;}private static String queryOtherColumn(Context context, Uri uri) {ContentResolver resolver context.getContentResolver();Cursor cur null;String name null;try {cur resolver.query(uri, null, null, null, null);if (cur ! null cur.getCount() 1 cur.moveToFirst()) {if (TextUtils.isEmpty(name)) {int fileNameIndex cur.getColumnIndex(file_name);if (fileNameIndex ! -1) {String fileName cur.getString(fileNameIndex);if (!TextUtils.isEmpty(fileName)) {name fileName;}}}if (TextUtils.isEmpty(name)) {int dataIndex cur.getColumnIndex(MediaStore.MediaColumns.DATA);if (dataIndex ! -1) {String dataPath cur.getString(dataIndex);if (!TextUtils.isEmpty(dataPath)) {name new File(dataPath).getName();}}}}} catch (Exception ignore) {} finally {if (cur ! null) {cur.close();}}return name;}public static File getFileDir(Context context, String fileDir) {File file context.getExternalFilesDir(fileDir);if (!file.exists()) {boolean result file.mkdirs();if (!result) {throw new RuntimeException(create file dir fail);}}return file;} }
http://www.hkea.cn/news/14559234/

相关文章:

  • 上海网站建设过程河南郑州最新消息今天
  • 旅游seo整站优化网站开发怎么进行数据库连接
  • 山东广饶建设银行网站专业做运动服装的网站
  • 网站建设沟通准备wordpress后台配置文件
  • 中山哪里做网站西安哪家公司制作响应式网站建设
  • 网站没有做实名认证软件开发专业属于哪个专业大类
  • 网站头部 标签软件开发工具性能审计不包括
  • 网站开发报价 福州wordpress 顶部美化
  • 网站建设类论文格式树莓派lamp WordPress
  • 淄博网站建设方案优化落实防控措施
  • 网站内容建设与管理wordpress字体调整
  • 网站包括哪些主要内容网络推广平台排行榜
  • 帝国cms添加网站地图网站的维护怎么做
  • 地方行业网站徐州做网站的公司哪家好
  • 网站开发需要团队网站备案号去哪查询
  • 广州企业网站建设公司哪家好网站 文件服务器
  • 公司门户网站首页买机票便宜网站建设
  • 网站如何做的有特色在linux上做网站搭建
  • c# asp.net网站开发书网络营销主要做些什么
  • 网站建设甲方给乙方的需求方案电子商务网站建设与管理实训报告
  • 在线课程软件网站建设费用网站制作公司兴田德润怎么联系
  • 在线网站软件免费下载安装重庆玻璃制作厂家
  • 公司做网站留言板商城服务是什么平台
  • wui网站建设开源免费cms可商业用
  • 网站建设帮助中心哈尔滨建立网站公司
  • 图书馆 网站开发 总结c 做的网站怎么上传图片
  • 网站续费贵是重新做个好还是续费mvc做门户网站
  • 烟台网站建设烟台用thinksns做的网站
  • 怎么给网站动态做伪静态wordpress xrea
  • 美塔基500元做网站可信吗怎么生成网站源代码