手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

uniapp编译的APP中如何打开pdf

uniapp支持编译成APP,同时支持IOS和Android,但这两个平台上面的行为有些不太一致。比如openDocument。

正常情况下,

1、我们如果是本地文件(PDF,现在只读PDF)。可以先利用plus.io.convertLocalFileSystemURL进行一次处理(记得只能存放在static目录下),static目录非常重要。,这时候可以获取相对于系统的全路径,然后用openDocument就可以打开了。

2、如果是网络文件,那就得先用uni.downloadFile来先下载,然后success(res){},res.url就是下载后的临时文件(依稀是这样,网上有很多例子,不多说)。然后再调用openDocument打开即可。

3、网络文件,也可以采用pdf.js来打开,这个就是mozilla提供的。他有提供两个版本,针对旧浏览器和现代浏览器的。如果没有什么特别要求,用现代浏览器的即可(这种pdfjs的方法,需要在webview里打开,可以参考uniapp的webview)。

--综上,看起来好象处理起来没那么复杂,然而问题来了,IOS这些都没问题,1、2、3的处理方法都OK。但安卓就不行了。1和2 在处理的时候,openDocument会直接调用系统,问你用哪个APP打开,一旦打开,就跳出你当前的APP了,这个就有点烦人,所以在android上几乎是只能采用第3种方式

默认mozilla提供的viewer.html的文件,非常复杂,因为他顶部的工具栏很多,如果没有时间定下心来研究或者处理,那一堆工具栏就显得有点多余,毕竟,我们是在手机上、PAD上打开,不需要那些工具栏,这时候就推荐一款基于pdfjs的一个微型库。居然还用了jquery的库的:https://github.com/gjTool/pdfh5,用法很简单,他本身也有test的demo,但有几个还是要注意一下,比如一些默认值的设置,默认点击会放大,而且默认是canvas渲染。官方的意思是:

XML/HTML代码
  1. pdfh5.js 基于pdf.js和jQuery,web/h5/移动端PDF预览手势缩放插件。  
  2.   
  3. 注意:本地绝对路径地址不能加载,跨域问题用代理或者服务端解决。  
  4.   
  5. svg模式渲染存在缺陷,只能渲染普通pdf,带签名、印章的可能会渲染不全,报错,pdf.js官方目前没有给出解决方案  
  6.   
  7. canvas模式本质是图片,默认进去的时候,图片在手机端被缩放,不是原分辨率,所以失真模糊。所以需要放大查看pdf  

但问题是,如果pdf本来就是图片,而且宽度 很大,这个渲染非常耗时间。。。卡出翔来。如果你只是普通的PDF,那就直接用svg吧。几乎秒开。打开的速度依据你的网络下载PDF的速度而定。

--至此,问题几乎全部解决。

 

 

Maven 打包项目时mapper,xml文件不被打包

 笔记和备份,来自各个网站

比如:
问题:打maven包的时候,打完包发现src/main/java中的的mapping文件没有被打包进去;
 
原因:mapping目录里面的文件都是xml文件并不是.java文件,而maven打包默认的src/main/java的是Java文件,它不会打包里面的xml文件,所以在打包之后里面不会有mapping。
 
解决办法: 在pom.xml中添加如下配置:
 
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
  <include>**/*.properties</include>
  <include>**/*.xml</include>
</includes>
<!-- 是否替换资源中的属性-->  
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
 
————————————————
版权声明:本文为CSDN博主「liujiding」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liujiding/article/details/79231767
 
------------
Maven 项目中使用 Mybatis 框架 ,如果运行项目时报如下错:
 
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
 
原因是构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。
Maven打包时,默认java目录下只将.java编译并将编译后的class文件打包,而mapper接口与mapper映射文件放在同一目录下时,mapper映射文件未被打包 。
 
以下几种方法都可以解决该问题。
 
1.build节点下添加 resources节点
 
 <!--xml文件打包-->
        <resources>
            <resource>
                <directory>${basedir}/src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
 
2.如使用build-helper-maven-plugin插件
 
 <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <id>add-resource</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/java</directory>
                                <includes>
                                    <include>**/*.xml</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>   
 
3.使用maven-resources-plugin插件
 
<plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>copy-xmls</id>
                    <phase>process-sources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/src/main/java</directory>
                                <includes>
                                    <include>**/*.xml</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>   
————————————————
版权声明:本文为CSDN博主「Fickle_actor」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Fickle_actor/article/details/82712663

App开发者需要更新此App以在此iOS版本上正常工作

原文来自:https://blog.csdn.net/weixin_43494305/article/details/117958342

---直接粘贴

最近随着iOS隐私协议更新以及iOS14.6系统正式放开,很多已经安装的app在升级到iOS14.6或者iOS15之后在打开App时都会提示“App开发者需要更新此App以在此iOS版本上正常工作 ”,而无法正常使用!此提示是因苹果正版签名(CodeSign)更新所致,导致所有之前macOS11以下系统打包的App在iOS14.6或者iOS15以上的设备会都提示需要更新才能正常工作。

 

解决方法: 

1.首先打包环境 mac升级到macOS11以上,此时打包会采用新的签名机制!

 2.在升级到最新系统之后,重新通过Xcode打包生成新的安装包即可!

 3.对于企业签的App,则需要企业签名提供商签名mac环境同样升级到macOS11系统之上重新签名方可解决。

---SO EASY

linux非www用户如果写文件

之前确实有一篇,引用的overtrue的文章,但其实还是不太正常:https://neatstudio.com/show-2912-1.shtml

当时参考的时候,其实比较简单:(基于非ROOT用户)
1、sudo adduser deployer
2、
sudo usermod -aG www-data deployer
3、sudo chfn -o umask=022 deployer
4、sudo chown deployer:www-data /var/www/html 
5、sudo chmod g+s /var/www/html => 这一步,需要调整为:sudo chmod -Rf g+s /var/www/html

 
chmod -Rf g+s sorgo/         #SGID,新生成文件或文件夹保持与父目录同一权限组
SGID属性对于像laravel框架这种有tinker让开发者在交互式命令行界面调试代码的特别有用。比如你使用tinker新建了一个日志文件,如果没有SGID那这个新日志文件的所有者和所有组会是uu:uu,这时www用户执行下的程序要写入东西到这个新日志的话就会因权限受阻而报错;而父目录有SGID属性的则会是uu:www,同时保证了两个相关的用户都能正常读写。
参考:https://segmentfault.com/a/1190000018373387
--
以下为新增,在这种情况下,部分目录可能还会存在写不进的问题。
6、sudo chmod -R 760 /var/www/html/storage => 对指定目录设置可写.

接中通快递有感。。。

 随便谈谈吧。

1、文档,OK感觉还行,但不知道是语言库的问题,还是升级版本的问题。明明文档里写header里是x-appkey,但看各个sdk都是写:x-companyid。。。虽然两个都没有错,但比较纠结
2、审核速度。确实有点慢。第一次入驻审核,花了3天才审。成了之后,创建项目,然后周五上午提交的功能点的审核(API权限),到现在还是待审中。(周末不审,我也认了。但你是做开放平台的,不应该是审吗?)
3、功能点不清楚。部分API里面,参数是否必填,显示是否。但又在该参数下的子参数写:如果A的值是1,该参数必填。。。
4、报错信息不明。比如getOrderInfo,如果你填了订单号,直接报查无订单。如果下面两个可选参数全不填。只填写type,就报参数不正确。。。还有其他的。比如有些API有前置条件的。没有明确表示,导致申请接口走了2次弯路(createOrder,必须要绑定面单才可以。文档没有体现,调用的时候出错也是:{"message":"服务暂不可用","result":null,"status":false,"statusCode":"S203"})
5、电子面单绑定。明明有界面,点击后,即提示你,该接口只能使用API绑定。。。那你不会直接在页面上标粗标红??
 
总之,有点乱。。先忍忍了。