0%

Here's something encrypted, password is required to continue reading.
Read more »

React-Native(后面简称RN)在展示某些静态也页面的时候,可能需要使用WebView, WebView可以请求一个网页地址,也可以异步请求HTML文本。一般情况下我们要得到网页的宽高,传回给RN以便准确设置WebView展示宽高

大致步骤

  1. 使用WebView的injectedJavaScript 属性注入JS代码,进行测量网页的宽高
  2. 设置WebView的宽高

PS:是不是很简单?哈哈哈~

先来介绍下injectedJavaScript

The injectedJavaScript is a custom prop of the React native Webview component. You can pass any JavaScript code ( as string ) to this prop, and React native will inject this JavaScript code into the Webview. The injected JavaScript will get executed once the Webview is finished loading.转自(可能需要科学上网)

injectedJavaScript 属性让注入的代码在WebView loaded时候运行一次,并只运行一次,除非你重新加载一次webView。

Read more »

1、设置UILabel行间距

1
2
3
4
5
6
7
NSMutableAttributedString* attrString = [[NSMutableAttributedString  alloc] initWithString:label.text];
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
[style setLineSpacing:20];
[attrString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, label.text.length)];
label.attributedText = attrString;


或者使用xib,看下gif图

2、当使用-performSelector:withObject:withObject:afterDelay:方法时,需要传入多参数问题

Read more »

1、禁止手机睡眠

1
2
3

[UIApplication sharedApplication].idleTimerDisabled = YES;

2、隐藏某行cell

1
2
3
4
5
6
7
8
9
10
11
12
13

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 如果是你需要隐藏的那一行,返回高度为0
if(indexPath.row == YouWantToHideRow)
return 0;
return 44;
}

// 然后再你需要隐藏cell的时候调用
[self.tableView beginUpdates];
[self.tableView endUpdates];

Read more »

在开发 ReactNative 应用时,jsbundle 有两种加载方式。第一种是指定 url 通过网络进行加载;第二种是 pre-bundled 将 jsbundle 文件打包进 app 安装包中。
编译生成的安装包有 Debug 和 Release 两种模式,在 Debug 模式下默认是使用第一种方式加载 jsbundle,在 Release 模式下默认是使用第二种方式。

最原始的办法(不推荐)

初始化后的项目想要真机调试,只好去修改:Libraries–>RCTWebSocket.codeproj–>RCTWebSocketExecutor.m中的localhost,将它修改为本地服务器的IP(通过终端ifconfig命令查看)

该方法太麻烦,一不小心把自己的IP提交上去了,会与其他同事产生冲突


自动配置 serverIP 的方案

Read more »

Node.js使用path模块处理文件路径

处理文件一般都要涉及到对文件路径的处理,Node.js处理文件路径使用path模块。path模块可以帮你规范化连接和解析路径,还可以用于绝对路径到对路径的转换、提取路径的组成部分及判断路径是否存在等。

文件路径指文件的保存位置,可以分为相对路径和绝对路径。可以通过拼接文件路径检测文件是否存在,也可以访问文件信息。通过字符串来连接文件路径时会存在一些文件。如:有的部分需要带“/”,有的部分不需要,不同操作系统的路径分隔也不一样。因此,处理文件路径会比较困难,使用path模块可以很好的解决这些问题。path模块提供的功能有:

  1. 规范化路径
  2. 连接路径
  3. 路径解析
  4. 查找两个绝对路径的相对关系
  5. 提取路径的组成部分
Read more »

iOS原生与React-Native通信(不依赖于视图控件)

最近在写RN项目的时候遇到一个问题:当接收到后台推送的消息或者其他应用跳转过来,需要打开APP并跳转到指定页面。

分析

这个对于iOS原来来说比较方便。一个全部React-Native(本文称为RN)实现的APP,RN对于iOS原生来说就是一个RCTRootView控制器。原生无法直接跳转RN的内部的控制器。必须要由iOS原生去通知RN并将参数传递给RN,由RN来进行跳转。

下面大致捋一下思路:

  • 新建RCTBridgeModule的Module类
  • 发通知告诉Module类与RN进行通信
  • RN在合适的位置监听Module类中的方法,接收到原生信息后进行响应操作
Read more »

iOS上传图片后台旋转展示问题

在一次上传图片到服务器后,去后台页面查看,发现iOS显示的图片总是旋转90℃的,而Android上传的图片展示正常的。

经过一番google之后发现是iOS相机加入了方向传感器,它能够记录下拍摄时相机的方向,并将这一信息保存在照片中。照片的存储方式还是没有任何改变,它仍然是以相机的坐标系来保存,只是当相机来浏览这些照片时,相机可以根据照片中的方向信息,结合此时相机的方向,对照片进行旋转,从而转到适合人们观看的角度。

但是很遗憾,这一标准并没有被广泛的传播开来,或者说始终如一的贯彻,这也导致了本文所讨论的问题。

原文地址

Read more »