onclick在ios18失效而在安卓手机上面正常运行的uni-app问题
onclick在ios18失效而在安卓手机上面正常运行的uni-app问题
产品分类:
HTML5+
HBuilderX版本号:
4.57
手机系统:
iOS
手机系统版本号:
iOS 18
手机厂商:
苹果
手机机型:
se2
打包方式:
云端
App下载地址或H5网址:
https://apps.apple.com/cn/app/%E4%BA%92%E4%BA%AB%E7%A4%BE%E5%8C%BA/id1550773270
示例代码:
"webviewParameter": {
"titleNView": {
"autoBackButton": false,
"backgroundColor": "#ffffff", //导航栏背景色
"titleColor": "#000000", //标题颜色
"padding-right": "12px",
"titleSize": "15px",//标题字体大小
"titleText": "互享社区",
"buttons": [
{
"float": "left",
"fontSrc": "_www/fonts/iconfont.ttf", // 引用本地字体文件
"fontSize": "23px",
"text": "\ue649"
},
{
"float": "right",
"fontSrc": "_www/fonts/iconfont.ttf", // 引用本地字体文件
"fontSize": "18px",
"text": "\ue607",
"onclick": "javascript:plus.webview.getWebviewById('menu').evalJS('menu()');"
}
]
},
}
function menu() {
plus.webview.currentWebview().show();
}
mui("#topPopover").popover('toggle');
document.addEventListener('plusready', function() {
mui("body").on('tap', 'a', function() {
var id = this.getAttribute('id');
if (id == "appshare") {
plus.webview.getWebviewById('share').evalJS('sharepage.showShareBox()');
} else if (id == "appscan") {
if (checkCameraPermission()) {
openScanner();
} else {
requestCameraPermissionWithPrompt();
}
} else if (id == "fx") {
plus.webview.getWebviewById('share').evalJS('sharepage.showShareBox()');
} else if (id == "hc") {
plus.nativeUI.toast("正在清理缓存");
setTimeout(function() {
plus.cache.clear(function() {
plus.nativeUI.toast("清理完成");
plus.runtime.restart();
});
}, 300);
} else if (id == "applet") {
plus.runtime.openWeb('https://apps.ekeji.wang/xcx.html');
plus.key.addEventListener('backbutton', function() {
plus.webview.currentWebview().close();
})
} else if (id == "gg") {
var href = 'https://www.baidu.com/';
var content = plus.webview.create('browse.html', 'browse', {
scrollIndicator: "none",
bounce: "vertical",
statusbar: {
background: "#06c1ae"
},
titleNView: {
autoBackButton: true,
backgroundColor: '#06c1ae',
titletext: "公告",
titleColor: '#ffffff'
},
cachemode: 'default'
}, {
href: href
});
content.addEventListener('loaded', function() {
content.show('slide-in-right', 300);
});
plus.key.addEventListener('backbutton', function() {
plus.webview.currentWebview().close();
})
} else {
plus.runtime.quit();
}
});
plus.webview.currentWebview().addEventListener("maskClick", function(){
plus.webview.currentWebview().setStyle({mask:"none"});
plus.webview.getWebviewById("menu").hide();
}, false);
plus.key.addEventListener("backbutton", function() {
plus.webview.currentWebview().setStyle({mask:"none"});
plus.webview.getWebviewById("menu").hide();
return false;
});
window.addEventListener('tap', function() {
plus.webview.getWebviewById("menu").hide();
});
});
操作步骤:
ios点击首页右上角没效果不出菜单
预期结果:
ios点击首页右上角没效果出菜单
实际结果:
2023年前hbuilderx版本打包代码能正常运行,现在首页-右上角菜单运行不了
bug描述:
wap2app打包的app,app自定义顶部导航,右上角菜单,安卓点击有效果,苹果点击不出来菜单
更多关于onclick在ios18失效而在安卓手机上面正常运行的uni-app问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于onclick在ios18失效而在安卓手机上面正常运行的uni-app问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据描述和代码分析,iOS18上onclick失效的问题可能出在以下几个方面:
-
iOS18可能对JavaScript注入执行机制做了调整,导致
evalJS
调用失效。建议改用postMessage
方式进行跨页面通信。 -
检查iOS18的点击事件处理机制是否有变化。可以尝试改用标准的
@click
事件绑定方式替代onclick
属性。 -
字体文件引用问题。iOS18可能对字体文件加载有更严格的限制,确保
iconfont.ttf
文件路径正确且可访问。 -
权限问题。iOS18可能增加了对JavaScript执行的额外权限控制。
建议先尝试以下修改:
- 将
onclick
中的代码改为:
"onclick": "javascript:plus.webview.postMessageToUniNView({action:'showMenu'});"
- 在页面中监听该消息:
plus.webview.addEventListener('showMenu', function(){
menu();
});