小编Ed *_*ain的帖子

如何在React Native中设置iOS状态栏背景颜色?

在本机iOS本机代码中是否有一个地方可以修改以设置iOS状态栏backgroundColor?RCTRootView.m?

反应原生状态栏组件只支持的backgroundColor为仅适用于Android.

iOS操作系统似乎允许设置状态栏的backgroundColor

我的目标是使颜色更深的状态栏颜色. 例

ios ios7-statusbar react-native

56
推荐指数
6
解决办法
6万
查看次数

如何编写重用常见 JavaScript 代码的 React Native“本机模块”(桥)?

原生模块如何回调到 JavaScript 内部桥接方法,然后在内部方法中进行处理,例如将数据解析为 JSON,然后引发 React Native 应用程序接收到的事件?

对于跨平台的桥模块,我想避免在重复的代码目标C和Java。如果可能,我想用 JavaScript 编写跨平台桥接模块代码,并在 Android 和 iOS 上重复使用。

我目前的解决方案:

这有效。

这将导致对 sendEventWithName 的两次调用:

  1. 带有“_processResponseInJavaScriptMethod”的 sendEventWithName
  2. forwardEventWithName 到 sendEventWithName 到本机应用程序。

题:

本机代码是否有一种方法可以使用 JS 调用同步处理数据,然后使用 sendEventWithName 立即发送结果?

还是每个 native > JS 调用都需要 async _bridge enqueueJSCall

文件:MyNativeModule.m

// 使用 forwardEventWithName 来转发事件 
// 由常见的跨平台JS处理到react native app
RCT_EXPORT_METHOD(forwardEventWithName:(NSString*)name
                  正文:(NSString*)正文){
    [self sendEventWithName:name body:body];
}

// 1 - 响应本机应用程序调用 sendQueryToBluetoothDevice
// 2 - 设备在收到响应时调用 commandResponse
RCT_EXPORT_METHOD(sendQueryToBluetoothDevice:(NSString*)command {
    [_device sendCommand:command];
}

// 1 - 从外部蓝牙设备接收 XML 响应
// 2 …

bridge react-native

14
推荐指数
2
解决办法
1928
查看次数

如何从Qt项目文件中引用Qt Creator当前构建目录?

Qt Creator是否设置了一个qmake变量,其中包含可以从Qt项目文件中引用的构建目录?

Qt Creator默认构建目录:

../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}

我的目标是使用QMAKE_POST_LINK从构建输出中复制dll的import lib,以便我的客户端项目更容易链接.如果我硬编码导入库的路径,QMAKE_POST_LINK可以正常工作.

例如:

QMAKE_POST_LINK = copy C:\projects\ICP\sw\icpts\sandbox\configurable-system-test-io\build-lib-configurable-system-test-io-Desktop_Qt_5_1_0_MSVC2012_32bit_eb09a8-Debug\debug\*.lib  ..\my-lib

解决方案: fbucek提供的使用$$ OUT_DIR的解决方案解决了我的问题.谢谢!

  • 在Windows下,必须在QMAKE_POST_LINK中使用$$ shell_path($$ OUT_PWD)将Unix'/'路径字符转换为Windows'\'路径字符.
  • 要向QMAKE_POST_LINK添加多个命令,请在$$ quote()中附加附加的$$ escape_expand(\n).

多个QMAKE_POST_LINK命令的示例:

QMAKE_POST_LINK += $$quote(copy /Y $$shell_path($$OUT_PWD)\debug\*.dll  ..\lib$$escape_expand(\\n))
QMAKE_POST_LINK += $$quote(copy /Y $$shell_path($$OUT_PWD)\debug\*.lib  ..\lib$$escape_expand(\\n))
QMAKE_POST_LINK += $$quote(copy /Y $$shell_path($$OUT_PWD)\debug\*.pdb  ..\lib$$escape_expand(\\n))

再次感谢$$ OUT_PWD!

-ed

  • Qt Creator 2.7.2
  • Qt 5.1
  • 微软VS 2012
  • Windows 7的

qt qmake

12
推荐指数
1
解决办法
1万
查看次数

使用Android NDK在C或C++中创建反应原生的本机模块?

我是否必须创建Java本机接口(JNI)才能从Android的本机原生模块访问C或C++代码?

我的目标是在一个反应天然重新使用共同C和C++算法(非UI)本机模块支持两个 Android和iOS.从Objective C*.m模块调用C或从Objective C++*.mm模块调用C++很简单.但是,用于Android 的react-native Native Module在java中实现了Native Module代码.

https://facebook.github.io/react-native/docs/native-modules-android.html#content

Android NDK允许您使用C或C++编写Android代码.Android NDK适用于Qt 5.6等C++框架.我不明白如何在避免使用Java JNI的同时将javascript转换为本机Native模块?

提前感谢任何提示或方向,

android android-ndk react-native

12
推荐指数
2
解决办法
6633
查看次数

如何从共享库初始化Qt资源?

我无法弄清楚如何初始化Red Hat Enterprise Linux 5.2下共享库中声明和使用的Qt资源.

我在我的共享库中添加了一个Qt资源文件,添加了一个名为"resource"的前缀,并添加了一个文件"files/styleSheet.xsl".资源文件名为"resources.qrc".QFile :: exists返回false?

MySharedLib::MySharedLib()
{

   // I think Q_INIT_RESOURCE basically expands to this:
   // The resource file is named "resources.qrc"
   extern int qInitResources_resources();
   qInitResources_resources(); 

      QString resourcePath = ":/resource/files/styleSheet.xsl";
      if( false == QFile::exists(resourcePath))
      {
         printf("*** Error - Resource path not found : \"%s\"\n",   resourcePath.toLatin1().data());
      }

}
Run Code Online (Sandbox Code Playgroud)

提前感谢任何提示或建议,

resources qt shared-libraries

9
推荐指数
1
解决办法
5335
查看次数

react-native组件与React.createClass的优点和缺点是实现UI组件?

一个与另一个有什么好处?

是否有一个被弃用,我应该使用较新的一个可能的?

我应该创建组件还是React类来开发我的UI?

我看到一些使用Component的例子.例如:

export default class ItemList extends Component {
  constructor(props) {

  //binding functions
  this.renderHeader = this.renderHeader.bind(this);
  this.renderRow = this.renderRow.bind(this);

    super(props);
    this.state = {
      dataSource: this.props.state.planDataSource,
      planName: null
    }
}
Run Code Online (Sandbox Code Playgroud)

和其他人一起使用

var ItemList = React.createClass({

  getInitialState: function() {
    return {
      dataSource: this.props.state.planDataSource,
      planName: null
    };
  },
Run Code Online (Sandbox Code Playgroud)

我正在学习反应原生的例子,我很困惑哪个是首选.

我最近将一个React类转换为一个组件,并发现"this"指针不起作用,因为React类使用自动绑定,而Components需要显式绑定.

components class react-native

8
推荐指数
1
解决办法
663
查看次数

如何使用参数和reducer访问来调用redux动作?

如何使用组件的渲染函数中的参数调用setCounter操作?

如何在reducer中访问动作的参数?

// File: app/actions/counterActions.js
export function setCounter(value) {
  return {
    type: types.SETCOUNTER,
    value
  };
}
export function increment() {
  return {
    type: types.INCREMENT
  };
}
export function decrement() {
  return {
    type: types.DECREMENT
  };
}
Run Code Online (Sandbox Code Playgroud)

如何在reducer中检索action参数?

// File: app/reducers/counter.js
export default function counter(state = initialState, action = {}) {
  switch (action.type) {
    case types.INCREMENT:
      return {
        ...state,
        count: state.count + 1
      };
    case types.DECREMENT:
      return {
        ...state,
        count: state.count - 1
      };
    case types.SETCOUNTER:
      return …
Run Code Online (Sandbox Code Playgroud)

action react-native redux

7
推荐指数
2
解决办法
2万
查看次数

从设备反应原生的Chrome调试被破坏了吗?(运行时尚未准备好进行调试)

任何人都可以建议检查设备上的Chrome调试吗?Chrome调试可以很好地调试iOS模拟器.

iOS设备的Chrome调试已经运行了一个多月,直到它在大约一周前停止工作.

我花了好几天时间试图让Chrome调试再次运行.我甚至开始使用新的"AwesomeProject".没运气.

Chrome调试URL是否与调试设备和模拟器保持一致?

在此输入图像描述

使用OS X 10.11.3,Xcode 7.3,iOS 9.3和react-native 0.22

  • MacBook WiFi:173.17.29.213
  • iPad WiFi:173.17.29.77
  • 我可以从MacBook ping iPad.
  • 我可以在iPad上运行AwesomeProject并启用实时重新加载.
  • 当jsCodeLocation设置为localhost时,我可以在模拟器中进行正常调试
  • 我杀了Chrome并重新启动它,打开了http:// localhost:8081/debugger-ui
  • React Packager正在运行
  • 我可以设置Xcode断点

文件:AppDelegate.m

  jsCodeLocation = [NSURL URLWithString:@"http://173.17.29.213:8081/index.ios.bundle?platform=ios&dev=true"];
Run Code Online (Sandbox Code Playgroud)

Xcode调试控制台显示:

2016-03-31 08:02:12.286 [error][tid:com.facebook.react.RCTBridgeQueue][RCTWebSocketExecutor.m:85] Runtime is not ready for debugging.
 - Make sure Packager server is running.
- Make sure Chrome is running and not paused on a breakpoint or exception and try reloading again.
2016-03-31 08:02:12.319 [error][tid:main][RCTWebSocketExecutor.m:132] WebSocket connection failed with error Error Domain=NSPOSIXErrorDomain Code=61 "Connection refused" …
Run Code Online (Sandbox Code Playgroud)

google-chrome npm react-native

7
推荐指数
1
解决办法
4805
查看次数

Android Studio错误:无法解决:com.facebook.react:react-native:+?

我正在尝试使用Android Studio来帮助开发一个反应原生Android桥模块.

我该如何解决这个错误?

Error:Failed to resolve: com.facebook.react:react-native:+

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
   > Could not find any version that matches com.facebook.react:react-native:+.
     Searched in the following locations:
         file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/facebook/react/react-native/maven-metadata.xml
         file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/facebook/react/react-native/
         file:/Users/edward3/Library/Android/sdk/extras/android/m2repository/com/facebook/react/react-native/maven-metadata.xml
         file:/Users/edward3/Library/Android/sdk/extras/android/m2repository/com/facebook/react/react-native/
         file:/Users/edward3/Library/Android/sdk/extras/google/m2repository/com/facebook/react/react-native/maven-metadata.xml
         file:/Users/edward3/Library/Android/sdk/extras/google/m2repository/com/facebook/react/react-native/
     Required by:
         :android:unspecified
Run Code Online (Sandbox Code Playgroud)

我使用Android Studio打开/ MyBridgeModule/android /文件夹.

我的build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.1'
    }
}

apply plugin: 'com.android.library'

android { …
Run Code Online (Sandbox Code Playgroud)

android-studio react-native

7
推荐指数
1
解决办法
2892
查看次数

如何在反应原生iOS应用程序中的运行时读取Info.Plist?

在运行时,有没有办法CFBundleVersion从Info.Plist 读取?

我想在应用程序的"关于框"中显示版本信息.

提前致谢,

-ed

info.plist react-native

6
推荐指数
1
解决办法
4653
查看次数