mirror of
https://github.com/ikun0014/lx-music-mobile.git
synced 2025-05-23 22:37:41 +08:00
修复低版本 Android 在某些情况下对 Emoji 字符编码的处理问题
This commit is contained in:
parent
22c89e9f8e
commit
91c712c983
@ -377,7 +377,7 @@ globalThis.lx_setup = (key, id, name, description, version, author, homepage, ra
|
||||
},
|
||||
md5(str) {
|
||||
if (typeof str !== 'string') throw new Error('param required a string')
|
||||
const md5 = nativeFuncs.utils_str2md5(str)
|
||||
const md5 = nativeFuncs.utils_str2md5(encodeURIComponent(str))
|
||||
// console.log('md5', str, md5)
|
||||
return md5
|
||||
},
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.toside.music.mobile.userApi;
|
||||
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
@ -10,14 +11,12 @@ import cn.toside.music.mobile.crypto.RSA;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
|
||||
import com.whl.quickjs.android.QuickJSLoader;
|
||||
import com.whl.quickjs.wrapper.JSCallFunction;
|
||||
import com.whl.quickjs.wrapper.QuickJSContext;
|
||||
import java.io.InputStream;
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.UUID;
|
||||
import okhttp3.HttpUrl;
|
||||
|
||||
public class QuickJS {
|
||||
private final Handler eventHandler;
|
||||
@ -87,15 +86,22 @@ public class QuickJS {
|
||||
});
|
||||
jsContext.getGlobalObject().setProperty("__lx_native_call__utils_str2md5", args -> {
|
||||
try {
|
||||
// Log.d("UserApi [script call]", "utils_str2md5: " + args[0]);
|
||||
String str;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
str = URLDecoder.decode((String) args[0], StandardCharsets.UTF_8);
|
||||
} else {
|
||||
str = URLDecoder.decode((String) args[0], "UTF-8");
|
||||
}
|
||||
// Log.d("UserApi [script call]", "utils_str2md5: " + str);
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
byte[] inputBytes = ((String) args[0]).getBytes();
|
||||
byte[] md5Bytes = md.digest(inputBytes);
|
||||
byte[] md5Bytes = md.digest(str.getBytes(StandardCharsets.UTF_8));
|
||||
StringBuilder md5String = new StringBuilder();
|
||||
for (byte b : md5Bytes) {
|
||||
md5String.append(String.format("%02x", b));
|
||||
}
|
||||
return md5String.toString();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
} catch (Exception e) {
|
||||
Log.e("UserApi [utils]", "utils_str2md5 error: " + e.getMessage());
|
||||
return "";
|
||||
}
|
||||
|
@ -24,7 +24,8 @@
|
||||
- 修复导出文件到范围存储类型的目录时,扩展名丢失的问题
|
||||
- 修复切换列表播放歌曲时可能会出现播放的歌曲不对应的问题
|
||||
- 修复内置列表名称硬编码和语言切换显示的问题(#662)
|
||||
- 修复某些情况下进播放详情页时,详情页不显示或应用界面无响应的问题
|
||||
- 修复某些情况下进播放详情页时,详情页会不显示或APP界面无响应的问题
|
||||
- 修复低版本 Android 在某些情况下对 Emoji 字符编码的处理问题
|
||||
|
||||
### 变更
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user