踩坑
- 块元素
- width的默认值是父元素的100%,一般情况下不用设置就可以满足需求。height的默认值是里面内容的高度,也就是auto,一般写代码的时候也不需要给元素设置高度,如果设置了高度而且设置的高度不够的时候,就会出现元素重叠的情况
- 重叠
- 外面一层 position:relative;里面的 position:absolute 就可以
- 高度设置50%时是有问题的,此时可以使用vh,代表可视高度0-100
- 内容div默认高度超出时,是会显示的,看上去是撑大了元素,,,需要给组件设置overflow
- width:100% 会导致滚动
- 箭头函数内不能使用this,一般用于静态函数,,,因为你是定义了一个变量,在变量的this,肯定是执行变量本身的
- 组件和pag如果定义了同一个acss,则会重叠作用与页面元素,,,定义组件时,acss要加前缀
- 关于margin-right失效的问题:
- 浏览器默认从左往右渲染元素,在没有超出父容器的宽度的前提下 如果子容器的宽度能够被容纳 设置margin-right是没有用的
- 可以加个view
- 组件给页面的回调事件中的入参是对象传递。 同理,页面给组件赋值
- 务必注意。如果在页面上对这个对象进行修改,组件里的会同步修改
- 只不过由于你没调用组件的setData方法,组件的ui没更新而已,如果更新setData({test:this.data.test})那么会更新
- this指向问题的解决:apply,call,bind
- ref 获取组件实例 或者在 组件的didMount中给page赋值
- 小程序过程
- rpx = dp 但是字体不要除2
2020-04-21 11:20:58.302 5095-5095/com.xxx.android.dev:wml1 E/yhf: java.lang.Throwable
at com.xxx.android.miniapp.AriverManifest.getBridgeExtensions(AriverManifest.java:163)
at com.alibaba.ariver.integration.RVManifestWrapper.getBridgeExtensions(RVManifestWrapper.java:129)
at com.alibaba.ariver.integration.RVInitializer.init(RVInitializer.java:121)
at com.alibaba.ariver.integration.RVInitializer.init(RVInitializer.java:85)
at com.alibaba.triver.TRiverSDK.init(TRiverSDK.java:64)
at com.xxx.android.miniapp.MiniApp.init(MiniApp.java:60)
at com.xxx.android.launcher.XXXProxyApplication.onCreate(XXXProxyApplication.java:279)
at pt.rocket.app.XXXApplicationImpl.onCreate(XXXApplicationImpl.java:106)
at pt.rocket.app.XXXApplication.onCreate(XXXApplication.java:19)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1158)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6203)
at android.app.ActivityThread.access$1200(ActivityThread.java:236)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1840)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7065)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:536)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)
LocationBridgeExtension MiniAppActivity
- @remote 会导致为appcontext null, 可以使用另外的方式 apiContext
- 查到了一个android miniapp的问题
- remote关键字用于:表示当小程序运行在子进程时,该JSAPI的调用会在主线程执行,API的callback将会通过IPC自动回到子进程
- 但是在lzd环境中时,我们家了remote的确实现了回调主进程,但是apiContext中上下文为null
- apiContext是为了拿当前进程的topAcitvity,保证即便跨进城了,也能给操作赋值上下文环境
- apiContext的topActivity是依赖于TriverEnvProxy中的ActivityLifecycleCallbacks
- 回调主进程后,apiContext的topActivity的原因是,minishop的主进程初始化在LazadaProxyApplication中是延时初始化的MiniApp.init(),导致rootActivity其实没有被记录,而扫码产生的toolscans\miniappActivity都会自动关闭,因此导致主进程没有topActivity
- 4个元素,导航栏的控制:标题栏整个隐藏:
- 隐藏真个标题栏
- 关闭整个app
- 隐藏分享菜单; :标题栏整个隐藏:
- 关闭按钮 和 后退按钮监听 ====》 存储草稿
- 需要物理按键
- 小程序关闭自己
- ok
- url携带参数
- onload
- image 只支持apifilepath,客户端需要返回加密的md5String
- com.alibaba.triver.triver_render.render.WVWebViewClient.shouldInterceptRequest