司辰
司辰
  • 发布:2016-06-08 10:36
  • 更新:2016-06-08 13:57
  • 阅读:1715

mui.openWindow在IOS执行问题

分类:MUI

你好,反映个问题:

这个mui.openWindow 当在一个web页面中执行时。

例如在http://localhost/index.html 中执行mui.openWindow({url:‘pointcheck.html’,id:'' })
hbuider编译的安卓APP会认为是个相对路径,会执行http://localhost/pointcheck.html 这也是预期的效果。
但在hbuider编译的苹果APP中却被认成本地路径:file:/// sd_cadr....../pointcheck.html 这个不是预期的结果

这个有没有什么好的解决方案,或者是IOS app的BUG?

2016-06-08 10:36 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

这个当然是APP的bug咯, 原生开发的时候经常也会有人碰到这个问题。
处理一下url地址就行了。

比如你打开了一个
http://a/b/c.html?fda/fff

你openwindow a.html

那么ios会给你打开一个 http://a/b/c.html?fda/a.html 的地址。

其实你是希望打开 http://a/b/a.html

if (key === 'url') {
openWindowData[key] = openData[key];
if (window.plus) {
if (plus.os.name.toLowerCase() === 'ios') {
var hostUrl = window.location.href;
// 这个# 号的节点 是根据具体当前url 文件地址后面的一个锚点
if (hostUrl.indexOf('#') > 0) {
hostUrl = hostUrl.substring(0, hostUrl.indexOf('#'));
hostUrl = hostUrl.substring(0, hostUrl.lastIndexOf('/') + 1);
openWindowData[key] = hostUrl + openData[key];
}
}
}
else {
console.log('12321312');
}
}

1***@qq.com

1***@qq.com

mui有坑 HBuilder打包的壳也有坑。 用起来要小心

司辰

司辰 (作者)

我现在的做法是把所有openwindow的地方的url都重新格式化了一下。

function api_getWebPath() {  
    var curWwwPath ="http://"  window.location.host "/PMAPP/web/";        
    return curWwwPath;  
}  

///
url=api_getWebPath() url;

该问题目前已经被锁定, 无法添加新回复