1:先执行npm install 然后执行 npm run web-init  配置完后 在执行 npm run web-start(注意的是不要根据文档执行

yarn add -D @jdreact/jdreact-core-web

2:本地获取用户信息:在 index.tpl.vm文件中修改

window.GLOBAL_CONFIG 的pin:

注意的是,最后要改回来!!

    (function() {
window.GLOBAL_CONFIG = {
pin : "$!pin",
sid: "$!sid",
};
}())

3:调用后端接口,需在 http://color.jd.com,根据右上角 文档 ,按照步骤一步步来:

然后审批之后,申请后端授权,

4:访问数据链接:

http://beta-api.m.jd.com/client.action?appid=youka_H5&functionId=getAllBrandOilCardList&body=%7B%22source%22%3A2%2C%22userPin%22%3A%22jd035a84%22%2C%22callId%22%3A%22a6fd7c4e-36a7-f746-6e9d-58a3c9f93d91%22%7D&client=youka_H5&clientVersion=1.0.0&jsonp=jsonp_1519723730909_85518

注意先登录,且登录人和所传的user_pin一致

5:输入框 让其主动获取焦点的时候,需要注意的是防止按钮的冒泡事件,导致光标闪烁一下然后离开输入框,因为JDReact中的onPress事件不是click事件;

_clearContact(event){
event.preventDefault();
document.querySelector('input').focus(); /*setTimeout(function(){
document.querySelector('input').focus();
},0);*/
},

这两种方法均可!

6:web与手机端的获取refs不同:

Platform.OS == 'web' ? this.refs.telInput.refs.input.blur() : this.refs.telInput.blur();

7:转成H5之后 带有间隔的电话输入框出现问题,(用单独的页面复现一下这个问题)

setTimeout(()=>{
Platform.OS == 'web' ? this.refs.telInput.refs.input.blur() : this.refs.telInput.blur();
},100);

8:改变title

    componentDidMount(){
if(Platform.OS == 'web'){
setTimeout(function(){
console.log(document.querySelector('.jd-header-new-title'));
document.querySelector('.jd-header-new-title').innerHTML='加油卡充值';
},100); }
},

9:路由分平台书写

if(Platform.OS == 'web'){
this.context.router.push('index',{'tels': JSON.stringify(encodeURIComponent(telNUm))});
}else{
this.context.router.push(
{ routeName: 'index',props:{tels:telNUm}}//下一个页面的
)
}

其中web端:对象数据传递时,需要JSON.stringify(), 接收数据时,需要JSON.parse(decodeURIComponent(this.props.datas)),

基本数据类型传递和接收的时候不用转
const {productName, productId} = Platform.OS === 'web' ? JSON.parse(decodeURIComponent(this.props.datas)) : this.props.datas;
10:字符串和boolean的区分
11:数据传递和保存用AsyncStorage
https://reactnative.cn/docs/0.51/asyncstorage.html#content
12:JDTouchable使得点击之后的样式发生变化,(如果不设置边框宽度的话):
代码为:

optWrapper: {
justifyContent: 'center',
alignItems: 'center',
flex:1,
height: JDDevice.getRpx(118),
borderRightWidth: JDDevice.getDpx(1),
borderBottomWidth: JDDevice.getDpx(1),
borderColor: '#ececec',
},

应该给border设置宽度为0:

optWrapper: {
justifyContent: 'center',
alignItems: 'center',
flex:1,
height: JDDevice.getRpx(118),
borderRightWidth: JDDevice.getDpx(1),
borderBottomWidth: JDDevice.getDpx(1),
borderTopWidth: JDDevice.getDpx(0),
borderLeftWidth: JDDevice.getDpx(0),
borderColor: '#ececec',
},

样式为:

13:修改配置文件

publicPath: 'static.360buyimg.com/exploit/youka/build-web/',

 14:iphone 5 se 对max-height 以及 div不设置固定的高度和宽度就不是块级别的元素
对于max-height必须放在 JDScrollView上,而不能放在view上
 
15:<JDScrollView>不能和<JDConfirmDialog>合用,否则点击JDConfirmDialog中的input输入框时,iphone5 se中会在键盘前增加一块白块
 
16:去掉生成的js文件的hash值,避免一直改动名称,方便调试:在文件webpack.donfig.prod.js中去掉hash

output: {
filename: '[name].[chunkhash].js',
chunkFilename: '[id].[chunkhash].js'
},

17优惠券页 区域高度超出后会导致双滚动条的出现,

方法一:需设置overflow:hidden;

方法二:确保内部元素高度不超过外部元素

cardBoxRight:{
flex:1,
height:JDDevice.getRpx(199),
paddingHorizontal:JDDevice.getRpx(20),
paddingTop:JDDevice.getRpx(25),
overflow:'hidden',
},

18 设置标题:

    componentDidMount(){
if(Platform.OS == 'web'){
window.onload = function(){
document.querySelector('.jd-header-new-title').innerHTML='加油卡充值';
}
}
},

19: rn调用手机通讯录,require在H5下require提升会报错,所以使用.web、.ios、.android三个文件

20:push popto等路由信息改成数据存储,重新渲染页面

jdreact转换为H5注意事项的更多相关文章

  1. 关于标准ui设计图转换为H5页面的终端适配

    一些基本概念 在进行具体实战之前,首先得了解下面这些基本概念(术语): 视窗 viewport 简单的理解,viewport是严格等于浏览器的窗口.在桌面浏览器中,viewport就是浏览器窗口的宽度 ...

  2. robotframework执行自动化不能转换为h5页面的问题解决

    电脑换成win10后,搭建了robotframework环境,执行自动化发现页面不支持h5页面了.请教了大佬,解决办法如下: 1.切换到DOS环境下,执行pip list命令,查看selenium2l ...

  3. jdreact相关操作注意事项

    1:sublime 安装 babel 插件可以 识别react代码,变色,使用javascipt(babel): 2:热更新:import React, {Component } from 'reac ...

  4. 用Vue.js开发微信小程序:开源框架mpvue解析

    前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程 ...

  5. mpvue 解析

    前言 mpvue是一款使用Vue.js开发微信小程序的前端框架. 总结   生命周期的理解 文档 一次前后端实践 使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为H5和小程序提供了代码复 ...

  6. MpVue解析

    前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为H5和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程序,或开发 ...

  7. 为什么选择MpVue进行小程序的开发

    前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为H5和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程序,或开发 ...

  8. pytorch加载语音类自定义数据集

    pytorch对一下常用的公开数据集有很方便的API接口,但是当我们需要使用自己的数据集训练神经网络时,就需要自定义数据集,在pytorch中,提供了一些类,方便我们定义自己的数据集合 torch.u ...

  9. 小程序web开发框架-weweb介绍

    weweb是一个兼容小程序语法的前端框架,你可以用小程序的写法,来写web单面应用.如果你已经有小程序了,通过它你可以将你的小程序运行在浏览器中.在小程序大行其道的今天,它可以让你的小程序代码得到最大 ...

随机推荐

  1. bzoj1294

    题解: 首先发现假如一个豆豆被多边形围住了,那么从这个豆豆引出一条射线 会有奇数个焦点 然后我们从每个豆豆引出一条射线 然后状压dfs 代码: #include<bits/stdc++.h> ...

  2. Linux关机命令和重启命令

    sync 将数据由内存同步到硬盘中. shutdown 关机指令,你可以man shutdown 来看一下帮助文档.例如你可以运行如下命令关机: shutdown mins’ 这个命令告诉大家,计算机 ...

  3. Python Django 之 简单入门

    一.下载Django并安装 1.下载Django 2.安装 二.新建Django project 1.使用django-admin新建mysite 项目 django-admin startproje ...

  4. 1014 2018 使用FLAG counter

    AmazingCounters.com 不能用了,服务器访问不了了,之前的博客浏览量也看不到了,1014号换了个新的--FLAG counter,就是博客右边那个.

  5. 非递归实现二叉树的三种遍历操作,C++描述

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  6. 十九. Python基础(19)--异常

    十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try:     <............. ...

  7. HTML--思维导图

    HTML--思维导图

  8. Unity最新版打包AssetBundle和加载的方法

    一.设置assetBundleName二.构建AssetBundle包三.上传AssetBundle到服务器四.把AssetBundle放到本地五.操作AssetBundle六.完整例子七.Asset ...

  9. Delphi直接实现分享图片功能

    procedure TCustomCameraViewDoc.ShareTextClick(Sender: TObject); var FSharingService: IFMXShareSheetA ...

  10. Python 数据处理库 pandas 入门教程

    Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...