我已经创建了一个关于本机的应用程序。它只有2个活动,现在我想将它们集成到我现有的Android应用程序const ExclamationIcon = props => (
<svg {...props} viewBox="0 0 140 140">
<circle fill="#f66868" cx="70" cy="70" r="70" />
<g transform="translate(58,30)">
<path fill="white" d="M 11,56.7 L 9,56.7 L 4.2,13.2 C 4,11.4 4,10 4,9 C 4,7 4.5,4.9 5.6,3.5 C 7,2.2 8.3,1.5 10,1.5 C 11.7,1.5 13,2.2 14.4,3.5 C 15.5,4.9 16,7 16,9 C 16,10 16,11.4 15.8,13.2 z M 10,64 A 6,6 0 1,1 10,76 A 6,6 0 1,1 10,64 z"/>
</g>
</svg>
);
class Hello extends React.Component {
render() {
return (
<div>
asdas
<svg className="main">
<rect x="20" y="20" width="100" height="40" fill="red" />
<ExclamationIcon width="30" x="0" y="0" />
</svg>
</div>
);
}
}
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
我发现核心React-native不提供生成(Native android app).
文件或.arr
的功能。为此,我们需要使用native code
。
我的问题是:有没有其他方法从react-native代码生成本机(iOS / android)代码?还有其他工具吗?如果他们这样做,Electrode Native
提供了哪些其他功能可以让人考虑一下?
答案 0 :(得分:2)
React Native提供了一个模块,用于检测运行应用程序的平台。您可以使用检测逻辑来实现特定于平台的代码。当只有组件的一小部分是特定于平台时,请使用此选项。
import {Platform, StyleSheet} from 'react-native';
const styles = StyleSheet.create({
height: Platform.OS === 'ios' ? 200 : 100,
});
&#13;
在Android上运行时,在iOS和Android上运行时,Platform.OS将是ios。
还有一个Platform.select方法可用,给定一个包含Platform.OS作为键的对象,返回当前正在运行的平台的值。
import {Platform, StyleSheet} from 'react-native';
const styles = StyleSheet.create({
container: {
flex: 1,
...Platform.select({
ios: {
backgroundColor: 'red',
},
android: {
backgroundColor: 'blue',
},
}),
},
});
&#13;
这将导致容器在两个平台上都具有flex:1,iOS上为红色背景颜色,Android上为蓝色背景颜色。
由于它接受任何值,您还可以使用它来返回特定于平台的组件,如下所示:
const Component = Platform.select({
ios: () => require('ComponentIOS'),
android: () => require('ComponentAndroid'),
})();
<Component />;
&#13;
检测Android版本 在Android上,Platform模块还可用于检测运行应用程序的Android平台的版本:
import {Platform} from 'react-native';
if (Platform.Version === 25) {
console.log('Running on Nougat!');
}
&#13;
检测iOS版本 在iOS上,Version是 - [UIDevice systemVersion]的结果,它是一个包含当前操作系统版本的字符串。系统版本的一个例子是&#34; 10.3&#34;。例如,要检测iOS上的主要版本号:
import {Platform} from 'react-native';
const majorVersionIOS = parseInt(Platform.Version, 10);
if (majorVersionIOS <= 9) {
console.log('Work around a change in behavior');
}
&#13;
答案 1 :(得分:0)
回答what other features Electrode native offers to make one consider it?
在开发,集成和重用多个不同的React Native组件到现有的移动应用程序时,开发人员面临着明显的挑战。
Electrode Native通过提供开源平台来应对这些挑战,该平台减少了React Native开发人员和移动应用程序开发人员的摩擦。使用Electrode Native平台解决方案,开发人员可以利用他们的知识,而无需大幅改变他们的工作流程,以适应移动应用程序中多个React Native组件的集成
Electrode Native允许移动应用程序开发人员轻松地将各个React Native组件集成到他们现有的移动应用程序中 - 无需更改其基础架构或处理或安装任何基于JavaScript的工具 - 甚至不是Electrode Native本身!
底线:使用Electrode Native,开发人员可以专注于功能和构建他们的应用程序 - 无需重用或集成问题的麻烦。
在此处详细了解Why electrode native。