uniapp项目第二阶段开发遇到的问题汇总

一、原生插件开发

        如果是初次接触原生开发的前端开发者,最好就是先把官方的原生插件demo给玩熟透,包括Module 插件形式 和 Component插件形式,其次,如果你用到的第三发SDK有demo的话,也最好熟悉业务逻辑,这样结合起来后面写插件也是事半功倍。

        其中我在原生插件中踩到的坑也是比较多的,

①uniapp原生插件和第三方SDK的jdk版本需要适配;

②原生Component插件中的消息传递方法fireEvent失效的问题:结果是因为vue3 方法 onTel会变成on-tel ,方法名改小写即可。

③fireEvent需要在主线程中执行,如果在回调方法中可以使用以下的方法让fireEvent继续保持在主线程中执行。

//主线程执行数据
mHandler.post(new Runnable() {
    @Override
    public void run() {
        Map<String, Object> params = new HashMap();
        Map<String, Object> data = new HashMap();
        data.put("data","success");
        params.put("detail",data);
        Log.d("params", "params: " + params);
        //自定义事件回传timeList数据
        fireEvent("onreceivedata",params);
    }
});

④在AppHookProxy初始化第三方SDK(如果需要)

public class MyApplication implements AppHookProxy {
    @Override
    public void onCreate(Application application) {
        String appKey = "xxxxxxxxxxxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxx";
        ThingHomeSdk.init(application, appKey, appSecret);
    }
}

⑤最蛋疼的就是,uniapp不支持私有仓库,如果你用到的第三方SDK的arr包,需要手动下载,并且放到插件的目录下,这样下来,你的代码大小就会极具增大,超过了40m云打包就开始收费。

原生插件开发参考链接:
https://ask.dcloud.net.cn/question/136071

https://blog.csdn.net/Douz_lungfish/article/details/140461463#t4

二、uniapp app组件video

        如果你的业务功能对与播放器要求非常高的,我这边非常不建议你使用uniapp进行一个开发,因为它的播放器功能是非常的鸡肋的,无法像原生播放器那样开放。

①无法对一个播放列表进行预加载或者称预缓存;

        如果需要对一整个播放列表进行连续的播放,这是的uniapp播放器video组件只能对单个视频进行缓存,每次切换都是需要重新加载,等待loading中;

②video 组件的参数配置
        官方没有给出一些对于视频播放优化处理,我看到社区文章有一位写的就是视频video 组件 高阶晋级(video 组件 高阶晋级 - DCloud问答),其中很多参数也是对于视频播放有一定的提升的,大家也可以参考一下去配置一些参数来优化自己的视频加载速度和缓存大小等;我尝试配过一些参数,对于视频的加载和播放确实有很大的提示,仅供参考。

<video id="myVideo" autoplay="true" class="videoZone" :advanced="advanced" >
//js代码
advanced: [{
						"key": "analyzeduration", //探测时间,
						"value": 1,
						"type": "format"
					},
					{
						"key": "probesize", //设置探测包数量,
						"value": 1024,
						"type": "format"
					},
					{
						"key": "rtsp_transport", //改为tcp协议
						"value": "tcp",
						"type": "format"
					},

					{
						"key": "framedrop", //丢帧阈值
						"value": 30,
						"type": "player"
					},
					{
						"key": "fps", //视频帧率
						"value": 30,
						"type": "player"
					},
					{
						"key": "packet-buffering", //设置无packet缓存
						"value": 0,
						"type": "player"
					},
					
				]

这边我想问一下大神们两个问题,
1.如果想要对一连串的视频播放做到一个无缝连接,请问有什么好的方案吗?

三、uniapp WiFi插件 app内连接WiFi(支持iOS、Android)

因为现在app的安全性提高,包括Android和iOS,对于app内直接操作WiFi做出了很多的限制,在uniapp项目第一阶段开发遇到的问题汇总_uniapp连接wifi-CSDN博客 中提到了Android的直连WiFi问题,现在app也兼容上iOS 在app内直连WiFi。

主要是通过 { NEHotspotConfigurationManager, NEHotspotConfiguration }这两个类进行一个直连,需要注意的是,需要去苹果官网勾选Access WiFi选项,再去打包证书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值