HarmonyOS 鸿蒙Next JS卡片无法更新中文和通过监听点击事件后无法发送http请求的问题

HarmonyOS 鸿蒙Next JS卡片无法更新中文和通过监听点击事件后无法发送http请求的问题

开发环境: API8
SDK版本:ArkTs-3.1.9.7
DevEco 3.1 Canary1

测试环境: Mate40pro
Harmony3.0
API8

问题描述:

  1. 进行js卡片开发时,在卡片的ts代码中,更新卡片数据时不支持更新中文数据
    若更新中文数据,会抛出以下异常:

  2. http请求无法发送的:onEvent()方法监听到卡片点击事件后,开始进行http请求操作,通过查看console.info日志打印发现无法获取到请求响应,且控制台有错误日志
    注:网络权限已经声明:

代码:

function getWeatherInfor(){
    //获取网络请求
    let httpRequest = http.createHttp();
    // 用于订阅http响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
    // 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
    httpRequest.on('headersReceive', (header) => {
        console.info('header: ' + JSON.stringify(header));
    });
    console.info("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK")
    httpRequest.request(
        // 填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
        "https://restapi.amap.com/v3/weather/weatherInfo",
        {
            method: http.RequestMethod.GET, // 可选,默认为http.RequestMethod.GET
            // 开发者根据自身业务需要添加header字段
            header: {
                'Content-Type': 'application/json'
            },
            // 当使用POST请求时此字段用于传递内容
            extraData: {
                "key": "77c2c6353559aa75ca8aa4711fbaa6c2",
                "city": "110000",
                "extensions": "all"
            },
            connectTimeout: 60000, // 可选,默认为60s
            readTimeout: 60000, // 可选,默认为60s
        }, (error, data) => {
            if (error) {
                console.info("onUrlLoadIntercept image error code: " + error.code + ", msg: " + error.message)
            } else {
                let code = data.responseCode
                let result = data.result as string
                console.info("onUrlLoadIntercept image code=" + code+" result="+result)
                if (ResponseCode.ResponseCode.OK == code) {
                } else {
                    console.log("onUrlLoadIntercept image response code: " + code);
                }
            }
        });
}

控制台打印报错:


更多关于HarmonyOS 鸿蒙Next JS卡片无法更新中文和通过监听点击事件后无法发送http请求的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

第一个问题这边已经修复了,等之后手机设备的系统更新应该就可以了的哈!

更多关于HarmonyOS 鸿蒙Next JS卡片无法更新中文和通过监听点击事件后无法发送http请求的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


同样的问题,为啥网络请求没反应?另外还有一个问题,卡片中json配置的routerEvent的params参数,跳转到对应的Ability后如何接收参数啊??发帖了也没人回!

你目前是用的java、js混合开发卡片还是arkts、js混合开发卡片呀。如果是java的话可以参照这个例子 https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-JSMovieCard 如果是后者,好像真没看到有官方的例子,

那么网络请求没反应的问题呢?

用arkts开发目前问题还是太多,很多功能不完善

针对您提到的HarmonyOS(鸿蒙)中Next JS卡片无法更新中文以及通过监听点击事件后无法发送HTTP请求的问题,以下是可能的解决方案:

  1. 中文更新问题

    • 确保您的Next JS卡片代码中正确使用了Unicode编码或指定的中文字符集。
    • 检查鸿蒙系统对卡片内容的解析是否存在对中文的特殊处理或限制,尝试使用不同的字符编码方式。
    • 验证卡片更新逻辑是否正确处理了中文字符串的传递和渲染。
  2. 点击事件后无法发送HTTP请求

    • 检查网络权限是否已正确配置在鸿蒙应用的manifest文件中。
    • 确认HTTP请求的URL和参数格式是否正确,特别是中文参数是否进行了正确的编码。
    • 验证点击事件监听器中的请求发送逻辑是否存在错误,如请求库的使用不当或异常处理缺失。
    • 检查鸿蒙系统是否有对HTTP请求的安全策略限制,如CORS(跨源资源共享)策略。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部