(14.1.2)小程序

踩坑

  • 块元素
    • 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

  1. @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
  2. 4个元素,导航栏的控制:标题栏整个隐藏:
    1. 隐藏真个标题栏
    2. 关闭整个app
  3. 隐藏分享菜单; :标题栏整个隐藏:
  4. 关闭按钮 和 后退按钮监听 ====》 存储草稿
    • 需要物理按键
  5. 小程序关闭自己
    • ok
  6. url携带参数
    • onload
  7. image 只支持apifilepath,客户端需要返回加密的md5String
    • com.alibaba.triver.triver_render.render.WVWebViewClient.shouldInterceptRequest
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值