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. requests(第三方模块) 请求、登录、下载网页

    import requests  #http://docs.python-requests.org/en/latest/api/ 说明文档 ''' requests.request(method,ur ...

  2. linux 在执行命令过程中,反单引号(`)这个符号代表的意义为何?

    在一串命令中,在`之内的命令将会被先执行,而且执行出来的结果将作为外部的输入信息.例如:uname -r 会显示出目前的内核版本,而我们的内核版本在/lib/modules里面,因此.你可以先执行un ...

  3. 学react的第一天

    属性 class = className for = htmlFrom jsx语法被编译了,所以可以在return里写html标签 react的属性 constructor(props){ super ...

  4. JavaWeb基础-Jsp基础语法

    jsp基础语法 JSP的组成 静态内容.指令.表达式.小脚本.声明.注释 JSP的生命周期 用户发出index.jsp ,服务端判断是否是第一次请求,若是第一次请求,则tomcat中的JSP引擎中的文 ...

  5. 90%会搞错的JavaScript闭包问题

    由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧. 先看题目代码: function fun(n,o) ...

  6. Beta阶段冲刺---Day5

    一.Daily Scrum Meeting照片 二.今天冲刺情况反馈 昨天已完成的工作: (1)闯关模式界面设计: (2)主界面做了相应修改: (3)RankActivity修改. (4)RANKli ...

  7. python map 常见用法

    python map 常见用法2017年02月01日 19:32:41 淇怪君 阅读数:548版权声明:欢迎转载,转载请注明出处 https://blog.csdn.net/Tifficial/art ...

  8. python day 07-数据类型补充,集合,深浅拷贝

    一.基础数据类型补充 1.列表转字符串 a='A'.join(['c','c','s']) print(a) 2.循环删除列表中的每⼀一个元素 lst=['asdf','dftgst','zsdrfs ...

  9. 2--Python入门--Python数据集合类型--列表

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

  10. Maven项目的结构分析

    上图为简单的Maven结构,其中用src/main/resources写项目配置文件,src/main/java写项目的java文件,src/test/java写java测试类文件.