下载开发工具:https://developer.harmonyos.com
从链接
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/document-outline-0000001064589184获得开发指南
从集成开发环境启动设备管理,使用远程仿真来模拟真机,并在仿真器上运行应用。
从devEco入口
设定远程仿真器
在设备启动项目
与写vue项目差异不大,只是工程上将js,css,h5分隔开来。稳定性还远远不够。
例如:
hml
在页面跳转上出一些问题,无法有效找到帮助。
错误
关于手机传感器的开发、如位置的开发,js貌似无能为力。只能说还是一个不太成熟的IDE,要想用得顺畅,还是得靠JAVA。
extern "C"
JNIEXPORT jstring JNICALL
Java_com_example_myApplication_slice_MainAbilitySlice_stringFromJNI(JNIEnv* env, jobject obj) {
std::string hello = "Hello from JNI C++ codes";
int len = hello.size();
jchar res[len];
for (int i = 0; i < len; i++) {
res[i] = (jchar)hello[i];
}
return env->NewString(res, len);
}
在java中如此加载
public class MainAbilitySlice extends AbilitySlice {
// Load the 'native-lib' library on application startup.
static {
System.loadLibrary("hello");
}
private PositionLayout myLayout = new PositionLayout(this);
@Override
public void onStart(Intent intent) {
super.onStart(intent);
LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);
myLayout.setLayoutConfig(config);
ShapeElement element = new ShapeElement();
element.setShape(ShapeElement.RECTANGLE);
element.setRgbColor(new RgbColor(255, 255, 255));
myLayout.setBackground(element);
Text text = new Text(this);
text.setText(stringFromJNI());
text.setTextColor(Color.BLACK);
myLayout.addComponent(text);
super.setUIContent(myLayout);
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
/**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
public native String stringFromJNI();
}
主服务框架中引用slice
public class MainAbility extends Ability {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
}
}
总之新品还是有很多亟待改善的地方