i***@hotmail.com
i***@hotmail.com
  • 发布:2020-02-05 14:59
  • 更新:2020-12-09 16:56
  • 阅读:921

plus.net.XMLHttpRequest 请求本地html崩溃

分类:HTML5+

安卓 魅蓝note6 安卓7, 请求本地html 会崩溃, 使用 $.ajax 在安卓正常, 却又不能兼容IOS 的wkwebview, 使用原生则崩溃... 实在查不到原因了... 请求帮助.

2020-02-05 14:59 负责人:无 分享
已邀请:
DCloud_Android_zl

DCloud_Android_zl

麻烦提供一个测试demo。

i***@hotmail.com

i***@hotmail.com (作者) - easybui

以下是代码, 压缩包可以直接运行

<!DOCTYPE HTML>  
<html>  

<head>  
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />  
    <title>BUI官网-Demo控件演示</title>  
    <meta name="format-detection" content="telephone=no" />  
    <meta name="keywords" content="BUI框架Demo,BUI Demo,BUI演示,BUI控件">  
    <meta name="description" content="BUI 有着丰富的控件,通过demo便可以了解到各个控件的效果及使用方法">  
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">  
    <link rel="stylesheet" href="css/bui.css" />  
</head>  

<body>  

    <script src="js/zepto.js"></script>  
    <script src="js/bui.js"></script>  
    <script>  

document.addEventListener('plusready', function(){  
    // IOS 可以正常请求  
var xhr = new plus.net.XMLHttpRequest();  
xhr.onreadystatechange = function () {  
    switch ( xhr.readyState ) {  
        case 0:  
            alert( "xhr请求已初始化" );  
        break;  
        case 1:  
            alert( "xhr请求已打开" );  
        break;  
        case 2:  
            alert( "xhr请求已发送" );  
        break;  
        case 3:  
            alert( "xhr请求已响应");  
            break;  
        case 4:  
            if ( xhr.status == 200 ) {  
                alert( "xhr请求成功:"+xhr.responseText );  
            } else {  
                alert( "xhr请求失败:"+xhr.readyState );  
            }  
            break;  
        default :  
            break;  
    }  
}  

// IOS 转换本地绝对路径, 安卓 加上file:// 等协议, 或者跟$.ajax 一样,使用相对路径都会崩溃  
var url="_www/test.html";  
var path=plus.io.convertLocalFileSystemURL(url);  

xhr.open( "GET", path);  
xhr.send();  
}, false );  

bui.ready(function() {  
    // 安卓可以请求  
//  $.ajax({  
//      url:"test.html",  
//      dataType:"html",  
//      contentType: "text/html",  
//      mimeType: "html",  
//      processData: false,  
//      success: function(res){  
//          bui.alert("安卓"+res);  
//      },  
//      error: function(res,status,xhr){  
//          bui.alert("fail")  
//      }  
//  })  

})  

    </script>  
</body>  

</html>
1***@qq.com

1***@qq.com

碰到一样的问题,请问楼主解决了没

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