Tizen智能电视Web应用无法获取偏好设置值问题排查
解决Tizen Web应用无法读取偏好设置的问题
核心问题:API使用错误
你混淆了应用自定义偏好和系统偏好设置的API:
- config.xml里定义的
<preference>是应用的自定义初始参数,不属于系统偏好范畴,不能用tizen.preferenceAPI读取。 tizen.preference是用于访问系统级设置(如语言、时区)的API,需要对应权限且和你的场景无关。
正确解决方案
1. 替换读取代码
使用应用信息API读取config.xml中的偏好值:
// 获取当前应用信息 const appInfo = tizen.application.getCurrentApplication().getAppInfo(); // 读取自定义偏好 const pref1 = appInfo.preferences['pref1']; const pref2 = appInfo.preferences['pref2']; console.log(pref1, pref2); // 输出 "1" "2"
2. 确认必要权限
在config.xml中添加读取应用信息的权限(否则会触发权限错误):
<tizen:privilege name="http://tizen.org/privilege/application.info"/>
额外注意事项
- 确保代码在
tizen对象初始化完成后执行,建议放在window.onload事件回调中:window.onload = function() { if (window.tizen) { const appInfo = tizen.application.getCurrentApplication().getAppInfo(); const pref1 = appInfo.preferences['pref1']; console.log(pref1); } }; - 如果确实需要使用系统偏好API(
tizen.preference),需添加对应权限并确认设备支持,但这不适用于读取你在config.xml中定义的应用偏好。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

