SuperWebView 記錄我遇到的問題解決方案

今天我開始會寫出我弄SuperWebView所遇到的問題的解決方案挣磨,我會持續(xù)更新的

1.頂部跟狀態(tài)欄重合
2.啟動A項目卻一直啟動的是B項目
3.下拉刷新無法使用
4.模塊獲取相同的ID是否會錯亂
5.superwebView 如何加載外部網(wǎng)址
6.使用execScript(回調(diào)) 傳遞參數(shù)
7.html頁面之間傳遞參數(shù)
8.div或者其它標(biāo)簽里面杂曲,自定義參數(shù)字段,然后獲取
9.使用api.download下載文件
10.使用函數(shù)function函數(shù)回調(diào)(callBack)傳遞參數(shù)
11.從Activity打開widget文件夾下面某一個Html頁面
12.從Activity里面無法找到widget文件夾下面的某一個Html頁面
13.使用addEventListener傳遞參數(shù)
14.同一個功能里面含有2個相同的Frame頁面,我是否可以共用同一個Frame頁面
15.Uncaught Error calling method on NPPobject at JsRuntime:1
16.api.accessNative傳遞參數(shù)給原生
17.dot.js如何傳遞對象
18.如何獲取設(shè)備是IOS還是安卓,以及設(shè)備型號
19.從豎直的主Activity啟動橫屏的H5導(dǎo)致APP直接退出
20.APPLoader 加載JS在小米會報xx is not defined 華為和模擬器正常
21.從H5豎屏頁面轉(zhuǎn)H5橫屏頁面备燃,出現(xiàn)崩潰信息
22.api is not defined
23.APICloud Webstorm WiFi日志輸出報錯:java.io.IOException: Couldn't create PTY
24.Webstorm HTML文件無法拖拽到Webstorm里面打開
25.overflow-y: scroll ios 滑動不流暢
26.api.showProgress沒有顯示
27.armabi armabi-v7a 選哪個so包放到項目里面
28.api.showProgress 在win界面有時候可以出現(xiàn)加載框,有時候不出現(xiàn)加載框
29.api.showProgress 會被Frame遮擋 BUG???
30.在Win界面api.showProgress役电,在Frame/Win界面調(diào)用api.hideProgress()都會關(guān)閉么?
31.backgroundImage 如何加載手機里面的某一張圖片赚爵?
32.img如何加載手機里面的某一張圖片?
33.vue MUI switch 滑塊無法滑動
34.如何通過Intent startActivity 傳遞參數(shù)給H5頁面(原生主動傳遞參數(shù)給H5)法瑟?
35.addEventListener被其它頁面覆蓋后冀膝,還會監(jiān)聽得到么?
36.APICloud加載圖片列表項霎挟,用戶一直往下拉窝剖,一直在吃內(nèi)存怎么解決?
37. 按下homte鍵后返回APP酥夭,先閃現(xiàn)出原生界面赐纱,然后才是H5界面
38.啟動Activity并加載了A.html脊奋,發(fā)現(xiàn)api.execScript無法執(zhí)行
39.模塊未綁定

1、今天遇到了一個頂部跟狀態(tài)欄重合的狀況

![TTKL7KT@_%%QGKWEM11ZUB.png](http://upload-images.jianshu.io/upload_images/1945114-4b193c5954bf5674.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 我的解決方案是關(guān)閉<preference name="statusBarAppearance" value="false"/> 關(guān)閉它疙描,statusBarAppearance 跟 iOS7StatusBarAppearance是一樣的知識iOS7StatusBarAppearance只是針對ios 或者你一樣開啟<preference name="statusBarAppearance" value="true"/>诚隙,然后調(diào)用api.fixStatusBar來解決
官網(wǎng)API如下:
http://docs.apicloud.com/Front-end-Framework/framework-dev-guide#45
2、今天遇到一個問題起胰,我一個Project目錄下有很多module久又,就是我跑A Modle,它總是把B Modle跑起來效五,后來解決方案是:因為2個項目的config.xml 里面的widget id相同導(dǎo)致的問題

L(`CDFTCU3{RNEHUSHMH9M1.png

3地消、下拉刷新無法使用
今天遇到一個問題,在首頁里面我們含有下拉刷新的控件的畏妖,但是IOS切換頁面后脉执,再切換回來,就不能下拉刷新了戒劫,后來改了api.openFrame bounces為true屬性半夷,就可以使用了

4、今天寫模塊的開發(fā)迅细,突然看到一個叫moduleDemo里面的我就想了一個問題
UZResourcesIDFinder.getResIdID("text");這個方法是獲取mo_demo_main_activity里面的一個TextView的Id,如果我自定義另外一個layout,
比如名字叫mo_demo_main_hello的layout,當(dāng)然我不通過UZResourcesIDFinder.getResLayoutID去加載它的mo_demo_main_hello的layout玻熙,(mo_demo_main_hello)的layout里面也有一個叫text的TextView,
那么問題來了疯攒,我通過UZResourcesIDFinder.getResIdID("text")這個查找到的TextView是哪個里面的?最后根據(jù)我的實驗列荔,它是找的mo_demo_main_activity里面的TextView敬尺,因為我是通過UZResourcesIDFinder.getResLayoutID 去加載mo_demo_main_activity

17.png

5、superwebView 如何加載外部網(wǎng)址
在APP調(diào)用瀏覽器有兩種方法:
1.使用openApp
2.使用openWin/openFrame

兩種方法調(diào)用瀏覽器后的效果有一點不同:
1.使用openApp調(diào)用瀏覽器后贴浙,如果手機內(nèi)有多個瀏覽器砂吞,會首先彈出選擇瀏覽器的框
2.使用openWin/openFrame,直接打開網(wǎng)頁.
openWin:

   api.openWin({
            name : 'win_show2',
            url : 'http://www.baidu.com',
            rect: {
               x: 0,
               y: 0,
               w: ‘a(chǎn)uto’,
               h: 'auto'
                }
            })

openFrame:

在apiready里面加入
api.openFrame({
    name: 'biadu',
    url: 'http://www.baidu.com',
    rect: {
        x: 0,
        y: 0,
        w: ‘a(chǎn)uto’,
        h: 'auto'
    },
    bounces: true,
    bgColor: 'rgba(0,0,0,0)',
    vScrollBarEnabled: true,
    hScrollBarEnabled: true
});

openApp:

     api.openApp({
        androidPkg : 'android.intent.action.VIEW',
        mimeType : 'text/html',
        uri : 'http://www.baidu.com'
         }, function(ret, err) {     
         });

必須要加入 http或者https 這樣的崎溃,否則無法加載

  1. 使用execScript(回調(diào)) 傳遞參數(shù)
api.execScript({
        name:'root', //這里root代表index.html
        frameName: 'frame_index_me',
        script: 'setData("' + id + '","' + name + '");'
});
 function setData(id, name){
     alert("這是我的id: " + id);
     alert("這是我的name: " + name);
}

上面這段代碼是從superwebView論壇里面找到的蜻直。
下面是我自己發(fā)現(xiàn)的一個

api.execScript({
        name:'root', //這里root代表index.html
        frameName: 'frame_index_me',
        script: 'setData();'
});
 function setData(id, name){
     alert("這是我的id: " + id);
     alert("這是我的name: " + name);
}

我就這樣執(zhí)行操作,它也是能夠執(zhí)行成功的

  1. html頁面之間傳遞參數(shù)
 api.openFrame({
        name: 'deliverOrder_list',
        url: '../html/deliverOrder_list.html',
        bounces: false,
        rect: {
            x: 0,
            y: headerHeight,
            w: 'auto',
            h: heightForFrame
        },
        pageParam: {  //這個是用來傳遞參數(shù)的
            coPickNo: coPickNo
        }
    });

獲取參數(shù)deliverOrder_list.html頁面

 if (api.pageParam != null && api.pageParam != '') {
        if (api.pageParam.coPickNo != null && api.pageParam.coPickNo != '') {
            coPickNo = api.pageParam.coPickNo;
        }
    }
  1. div或者其它標(biāo)簽里面袁串,自定義參數(shù)字段概而,然后獲取
    自定義參數(shù)字段
  {{for(var prop in it) { }}
    <li paramValue="{{=it[prop].erpPtId}}">{{=it[prop].displayText}}</li>
    {{}}}
//paramValue是我自定義的

獲取自定義參數(shù)

var  erpPtId = $api.attr(this, 'paramValue');
//this,表示此時被點擊的對象囱修,在被點擊的對象里面找paramValue

9.使用api.download下載文件

 api.download({
        url: 'xxxx',
        savePath: 'fs://aaaaaaaaaaa.jpg',
        report: false,
        allowResume: false
    }, function (ret, err) {
        if(ret.state==1){
            alert('下載成功');
        }
    });

url:你要下載的地址赎瑰,不管你下載的文件后綴是.jpg,還是.png破镰,還是.xml餐曼,還在.zip格式的压储,你都需要在savePath:'fs://xxxxxxxx.你要下載的格式',寫上你對應(yīng)的格式

10.使用函數(shù)function函數(shù)回調(diào)(callBack)傳遞參數(shù)

ajaxRequest(getTabBarBannerUrl + JSON.stringify(urlParam), 'GET', '', function (ret, err) {
        if (ret) {
            var content = $api.byId('banner-content');
            var tpl = $api.byId('banner-template').text;
            var tempFn = doT.template(tpl);
            content.innerHTML = tempFn(ret[0].banner);
            initSlide();
        } else {
            api.toast({msg: err.msg, location: 'middle'})
        }
    })

ajaxRequest函數(shù):

function ajaxRequest(url, method, bodyParam, callBack) {
    var common_url = 'https://d.apicloud.com/mcm/api';
    var appId = 'A6963429484030';
    var key = '7F836F04-CAAC-52C8-2332-CF337134FA6F';
    var now = Date.now();
    var appKey = SHA1(appId + "UZ" + key + "UZ" + now) + "." + now;
    api.ajax({
        url: common_url + url,
        method: method,
        cache: false,
        timeout: 20,
        headers: {
            "Content-type": "application/json;charset=UTF-8",
            "X-APICloud-AppId": appId,
            "X-APICloud-AppKey": appKey
        },
        data: {
            body: bodyParam
        }
    }, function (ret, err) {
        callBack(ret, err); //這行是回調(diào)的
    });
}

11.從Activity打開widget文件夾下面某一個Html頁面

    Intent intent = new Intent(this, WebPageModule.class);
            //不傳遞startUrl的情況下源譬,默認走自動加載widget的機制集惋,即:APICloud引擎會自動去解析assets/widget目錄下的資源并加載
//          String url = "file://" + UZUtility.getExternaStoragePath() + "index.html"; 
//          intent.putExtra("startUrl", "file:///android_asset/widget/index.html");
//          intent.putExtra("startUrl", url);
            startActivity(intent);

12.從Activity里面無法找到widget文件夾下面的某一個Html頁面

 Intent intent = new Intent(this, ContractExecuteHtmlActivity.class);
                    String url = "file:///android_asset/widget/html/purchase.html";
                    intent.putExtra("startUrl",url);
                    startActivity(intent);

我使用這樣的方式一直找不到html頁面,后來發(fā)現(xiàn)踩娘,是html頁面根本沒有編譯到apk里面

13.使用addEventListener傳遞參數(shù)

//發(fā)送廣播事件
api.sendEvent({
    name: 'myEvent',  //要和接收廣播參數(shù)的對應(yīng)
    extra: {
        name: '張三',
        age: '18'
    }
});

//接收廣播事件參數(shù)
//html頁面a:
api.addEventListener({
    name: 'myEvent'
}, function(ret, err) {
    alert(ret.value.name);//打印名字
    alert(ret.value.age);//打印年齡
});

14.同一個功能里面含有2個相同的Frame頁面刮刑,我是否可以共用同一個Frame頁面
我告訴你答案是可以的,不過 name要不相同

//打開frame組頁面頁面
    api.openFrameGroup({
        name: 'inveneryQueryGroup',
        scrollEnabled: true,
        rect: {
            x: 0,
            y: titleHeaderHeight+nvarHeader,
            w: 'auto',
            h: showHeaderHeight-nvarHeader-footerHeight
        },
        index: 0,//默認顯示的默認索引
        frames: [{
            name: 'inventeryQuery_depot_frame_list',           //按倉庫
            url: '../html/inventeryQuery_depotVariety_frame_list.html',
            bounces: false,
            vScrollBarEnabled: false,
            hScrollBarEnabled: false,
            pageParam: {
                erpPtId: erpPtId,
                status:INVENTERYQUERY_10
            }
        }, {
            name: 'inventeryQuery_Variety_frame_list',          //按品種
            url: '../html/inventeryQuery_depotVariety_frame_list.html',
            bounces: false,
            vScrollBarEnabled: false,
            hScrollBarEnabled: false,
            pageParam: {
                erpPtId: erpPtId,
                status:INVENTERYQUERY_20
            }
        }]
    }, function (ret, err) {
        var index = (ret.index);//下標(biāo)
        var navBarBar = $api.dom('#navBar_receipt_dailyPay .navBar_bar_inner');
        navBarBar.style.webkitTransform = 'translateX(' + index * 100 + '%)';//設(shè)置下標(biāo)藍色滑動
    });

15.Uncaught Error calling method on NPPobject at JsRuntime:1
我出現(xiàn)這個問題是我Html頁面下載了文檔霸饲, 然后想通過調(diào)用原生的方式去打開贝次,結(jié)果發(fā)現(xiàn),原生報錯了所以解覺原生錯誤的代碼即可

  1. api.accessNative傳遞參數(shù)給原生
api.accessNative({
    name: 'showMenu',
    extra: {
        filePath: 'xxx/xxxx/abc.xml'
    }
}, function(ret, err) {
});

原生界面獲取extra對象

 JSONObject jsonObject =  moduleContext.optJSONObject("extra");
            Log.i(TAG,jsonObject.optString("filePath"));//xxx/xxxx/abc.xml
       //moduleContext是UZModuleContext

17.dot.js如何傳遞對象

<script type="text/template" id="fujian_ul_template">
    {{for(var prop in it) { }}
    <li fileIdValue="{{=it[prop].fileId}}" ptIdValue="{{=it[prop].ptId}}" paramsValue='{{!JSON.stringify(it)}}' onclick="fnDownFile(this)">
        <p class="fileName">
            <a>
            {{? it[prop].fileName}}
              {{=it[prop].fileName}}
            {{}}}
            </a>
        </p>
    </li>
    {{}}}
</script>

注意上面我的{{!JSON.stringify(it)}}距境,這里是將json對象轉(zhuǎn)為字符串

 var attachments = JSON.parse($api.attr(e, 'paramsValue'));
        console.log("對象"+JSON.stringify(attachments[0]));
        console.log("對象"+JSON.stringify(attachments));
dot.js傳遞對象.png

18.如何獲取設(shè)備是IOS還是安卓步藕,以及設(shè)備型號

  if(api.systemType=='ios'&&api.deviceModel=='iPhone X'){//如果是蘋果X
        $api.fixStatusBar(header);//解決IOSX
    }
var systemType = api.systemType;  // 比如: ios
var deviceModel = api.deviceModel;  // 比如: iPhone 5

19.從豎直的主Activity啟動橫屏的H5導(dǎo)致APP直接退出
我最近有個需求,我需要從主Activty啟動一個橫屏的H5傻工,我進入橫屏的H5頁面后霞溪,再點擊返回按鈕返回主Activity,發(fā)現(xiàn)直接退出APP了中捆,沒有任何的異常信息錯誤提示鸯匹。
解決辦法:
AndroidManifest.xml

<!--主Activity-->
 <activity
            android:name="xxxxxxxxxxx.activity.MainActivity"
            android:label="@string/title_activity_main"
            android:logo="@drawable/icon_application"
            android:screenOrientation="portrait"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:theme="@style/Baf.Theme.NoTitleBar"
            android:windowSoftInputMode="adjustPan"/>
<!--橫屏的H5,因為HTML是承載在activity上面的-->
        <activity android:name=".business.activity.VisualizationHtmlActivity"
            android:screenOrientation="landscape"
            android:theme="@style/H5StyleNotitle"/>

****** 注意:我這里的MainActivity是主頁面的(它承載了4個Fragment)泄伪,然后我啟動的VisualizationHtmlActivity呢殴蓬,是我在fragment點擊后需要進入的
主Activity頁面加入
android:configChanges="orientation|screenSize|keyboardHidden"
這樣就可以防止app走生命周期的銷毀流程,如果你要在切換橫豎屏幕的時候做一些操作可以加入一些監(jiān)聽

 @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        int mCurrentOrientation = getResources().getConfiguration().orientation;
        if ( mCurrentOrientation == Configuration.ORIENTATION_PORTRAIT ) {
            BAFLogger.i(TAG,"PORTRAIT");
        } else if ( mCurrentOrientation == Configuration.ORIENTATION_LANDSCAPE ) {
            BAFLogger.i(TAG,"LANDSCAPE");
        }
    }

總結(jié):哪個頁面需要轉(zhuǎn)換屏幕就在哪個頁面上添加蟋滴。
文獻參考
http://blog.sina.com.cn/s/blog_77c632410101790w.html (講解橫豎生命周期)
https://blog.csdn.net/michelle0516/article/details/37876325 (講解關(guān)/熄屏幕會多次走生命周期)

20.APPLoader 加載JS在小米會報xx is not defined 華為和模擬器正常
這個問題很蛋疼染厅,最開始在官方里面的論壇里面問,他們還是沒有給出正解的答案津函。后面自己亂弄就好了
首先打開手機SD卡肖粮,把UZMap刪除,然后用自帶的清理工具尔苦,清理垃圾涩馆,然后重新啟動手機,搞定允坚。

21.從H5豎屏頁面轉(zhuǎn)H5橫屏頁面魂那,出現(xiàn)崩潰信息
錯誤信息如下

05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.uzmap.pkg.uzcore.UZCoreUtil.hideSoftKeyboard(UZCoreUtil.java:280)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.uzmap.pkg.uzcore.t.onVisibilityChanged(UZHybridWindow.java:128)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.view.View.dispatchVisibilityChanged(View.java:8778)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.view.ViewGroup.dispatchVisibilityChanged(ViewGroup.java:1278)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.view.View.setFlags(View.java:9870)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.view.View.setVisibility(View.java:6742)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.uzmap.pkg.uzcore.t.f(UZHybridWindow.java:1177)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.uzmap.pkg.uzcore.p.a(UZHybridWidget.java:521)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.uzmap.pkg.uzcore.p.a(UZHybridWidget.java:491)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.uzmap.pkg.uzcore.p$2.run(UZHybridWidget.java:324)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.os.Handler.handleCallback(Handler.java:815)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:104)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.os.Looper.loop(Looper.java:194)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5562)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
05-16 22:07:42.926 10028-10028/com.gise_gnm.mobile.gkapp W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
05-16 22:07:42.956 10028-10028/com.gise_gnm.mobile.gkapp W/WebView: setLayerType()

05-16 17:16:22.274 10247-10247/com.gise_gnm.mobile.gkapp W/WebView: setLayerType()
05-16 17:16:22.305 10247-10247/com.gise_gnm.mobile.gkapp W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 10247
05-16 17:16:22.614 10247-10247/com.gise_gnm.mobile.gkapp W/cr_AwContents: Application attempted to call on a destroyed WebView
 java.lang.Throwable
at org.chromium.android_webview.AwContents.isDestroyed(AwContents.java:1256)
at org.chromium.android_webview.AwContents.isDestroyedOrNoOperation(AwContents.java:1186)
at org.chromium.android_webview.AwContents.getTitle(AwContents.java:2044)
at org.chromium.android_webview.AwWebContentsDelegateAdapter.loadingStateChanged(AwWebContentsDelegateAdapter.java:280)
at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:41)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5562)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
05-16 17:16:22.695 10247-10247/com.gise_gnm.mobile.gkapp W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 10247
05-16 17:16:22.696 10247-10247/com.gise_gnm.mobile.gkapp W/cr_AwContents: Application attempted to call on a destroyed WebView
java.lang.Throwable
at org.chromium.android_webview.AwContents.isDestroyed(AwContents.java:1256)
at org.chromium.android_webview.AwContents.isDestroyedOrNoOperation(AwContents.java:1186)
at org.chromium.android_webview.AwContents.getTitle(AwContents.java:2044)
at org.chromium.android_webview.AwWebContentsDelegateAdapter.loadingStateChanged(AwWebContentsDelegateAdapter.java:280)
at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:41)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.app.ActivityThread.main(ActivityThread.java:5562)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)

解決辦法:
解決辦法其實跟20的一樣,哪個頁面需要轉(zhuǎn)換屏幕就在哪個頁面上添加稠项。

22.api is not defined
說明:我這個HTML頁面加載了jquery.js進去了的
我錯誤的源碼

$(function () {
    if (api.pageParam && api.pageParam != '') {
        if (api.pageParam.item && api.pageParam.item != '') {
            item = api.pageParam.item;
        } else {
            alert("傳遞的item參數(shù)為空");
            closeFrame();
            return;
        }
    } else {
        alert("傳遞的item參數(shù)為空");
        closeFrame();
        return;
    }
  冰寻。。皿渗。斩芭。省略代碼
});

如果我像上面這樣寫會報這個錯誤:api is not defined
正確的寫法

//$(function () {
apiready = function () {
    if (api.pageParam && api.pageParam != '') {
        if (api.pageParam.item && api.pageParam.item != '') {
            item = api.pageParam.item;
        } else {
            alert("傳遞的item參數(shù)為空");
            closeFrame();
            return;
        }
    } else {
        alert("傳遞的item參數(shù)為空");
        closeFrame();
        return;
    }
      轻腺。。划乖。贬养。省略代碼
}
//});

23.APICloud Webstorm WiFi日志輸出報錯:java.io.IOException: Couldn't create PTY
文章轉(zhuǎn)載:
https://blog.csdn.net/DeMonliuhui/article/details/79777389
解決方案:
將cmd路徑寫完整
"C:\Windows\System32\cmd.exe" /K "chcp 936 && java -jar C:/APICloud/workspace/wifilog.jar C:/APICloud/workspace/log_info"

24.Webstorm HTML文件無法拖拽到Webstorm里面打開
文章轉(zhuǎn)載:http://www.jackxiang.com/post/8725/
運行中輸入regedit,打開注冊表編輯器
在下面的鍵值:
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Policies > System
找到EnableLUA將1改成0琴庵,然后重啟機子误算。

25.overflow-y: scroll ios 滑動不流暢
文章轉(zhuǎn)載:https://blog.csdn.net/dnpao/article/details/76571474
加入如下規(guī)則

.bigItem-list {
    width: 100%;
    -webkit-overflow-y: scroll;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch; /**解決IOS滑動不流暢問題**/
}

26.api.showProgress沒有顯示
出現(xiàn)這樣的問題,多半是被遮蓋導(dǎo)致的迷殿,你可以設(shè)置延遲300ms儿礼,然后再來顯示

 setTimeout(function() {
            api.showProgress({
                title: '加載中',
                modal: false
            });
        }, 300)

27.armabi armabi-v7a 選哪個so包放到項目里面
都可以選擇其中一個放入即可

28.api.showProgress 在win界面有時候可以出現(xiàn)加載框,有時候不出現(xiàn)加載框
解決辦法

api.addEventListener({
    name:'viewappear'
}, function(ret, err){
    api.showProgress({
        title: '加載中',
        modal: false
});
});
Window 顯示到屏幕的事件庆寺,字符串類型蚊夫。收到 viewappear 事件回調(diào),即標(biāo)識當(dāng)前 Window 已經(jīng)動畫結(jié)束懦尝,并且完全顯示到屏幕上知纷。
該事件的作用對象為 Window,F(xiàn)rame 的顯示不會收到事件

29.api.showProgress 會被Frame遮擋 BUG???
原文地址
解答:api.showProgress是依附于window的陵霉,你打開frame琅轧,層級高于win,肯定遮蓋踊挠,這不是一個bug

30.在Win界面api.showProgress乍桂,在Frame/Win界面調(diào)用api.hideProgress()都會關(guān)閉么?
不會

31.backgroundImage 如何加載手機里面的某一張圖片?
格式是: “url('file://”+Android原生路徑+"')"
圖片地址:/storage/emulated/0/20180725190152463.jpg

 document.getElementById("fengmian").style.backgroundImage="url('file://"+picObj.bigPic+"')" ;

32.img如何加載手機里面的某一張圖片效床?
手機圖片地址:/storage/emulated/0/20180726202822869.png
格式是:file://"+Android原生地址+"

$api.byId('fengmian_pic').src="file://"+picObj.bigPic+"";
請注意:跟上面的backgroundImage加載是有區(qū)別的模蜡,backgroundImage加載是有 ‘ ’ 這樣的符號的,在file位置扁凛,img加載是沒有的

33.vue MUI switch 滑塊無法滑動
對于這樣的問題,我們要動態(tài)的添加swith闯传,然后再初始化mui里面的switch組件

vm = new Vue({
        el: '#container',
        mounted:function(){
           $api.byId('muiswitchcomment').innerHTML='<div class="mui-switch mui-switch-mini"><div class="mui-switch-handle"></div></div>';
           var a = this;
            a.$nextTick(function() {
                mui('.mui-switch').switch();
            });
        },
        methods: {
   }
    });

就像上面我那樣寫就可以了谨朝,mounted 是VUE在初始化HTML頁面完成之后會調(diào)用的

34.如何通過Intent startActivity 傳遞參數(shù)給H5頁面(原生主動傳遞參數(shù)給H5)?
比如我的A是H5頁面且是一個詳情頁面甥绿,B是原生的界面字币,如果我通過A詳情頁面進入B界面,此時我想點擊B界面的詳情返回A界面共缕,注意了我這里的返回是再Intent一個A界面出來洗出,此時就是A->B->A這樣。我再次啟動A界面如何傳遞給A界面H5參數(shù)呢图谷?
特別提醒:在低版本是無法這樣傳遞參數(shù)的翩活,我這個版本是1.3.1阱洪,在低版本,你只能通過監(jiān)聽appintent才能獲取

       Intent intent = new Intent(this, A.class);
        String url = "file:///android_asset/widget/html/detail.html";
        Bundle bundle = new Bundle();
        bundle.putString("againStatus",MODEL_90);
        bundle.putInt("roldId",roldId);
        intent.putExtras(bundle);
        intent.putExtra("startUrl", url);
        startActivity(intent);

A的H5頁面

    roldId = api.pageParam.roldId;
    againStatus = api.pageParam.againStatus;

就這樣可以直接拿到值了菠镇,現(xiàn)在還有一個問題冗荸,第一個A會收到參數(shù)么?答案是不會利耍。

35.addEventListener被其它頁面覆蓋后蚌本,還會監(jiān)聽得到么?
a.html設(shè)置了一次監(jiān)聽事件比如監(jiān)聽loginListener

a.html
api.addEventListener({
        name: 'loginListener'
    }, function (ret, err) {
      console.log("1234");
    });

從a.html --->原生界面--->a.html界面隘梨,此時第一個a.html已經(jīng)被覆蓋了程癌,我們又從原生界面進入了第二個a.html,此時如果有發(fā)出事件被a.html監(jiān)聽到轴猎,那么就只有1次log被打印出來嵌莉,就只有最上面的那個a.html。

36.APICloud加載圖片列表項税稼,用戶一直往下拉烦秩,一直在吃內(nèi)存怎么解決?
怎么用vue.js結(jié)合apicloud的api.imageCache實現(xiàn)圖片緩存](https://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=50251&highlight=vue%2BimageCache)

for循環(huán)怎么實現(xiàn)imageCache
(https://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=115914&highlight=imageCache)
方案一:

Vue.directive('cacheSrc', function(el, binding) {
                api.imageCache({
                    url: binding.value,
                    thumbnail: false
                }, function (ret, err) {
                   if (ret && ret.status) {
                          el.setAttribute("src", ret.url);//這里的目的是替換empty.png的圖片
                   }
                });
});

html:
   <img src="../../image/default.jpg" v-cache-src="真實圖片">

方案二:

html:
 <img  v-on:load="cacheImage($event)"  :data-url="item.HeadPhoto"   v-on:error.once="moveErrorImg($event)" src="../image/icon_list_item_empty.png" class="userheader" v-cloak>
//注意:v-on:load 必須在src的前面


js:
          moveErrorImg: function (event) {
                event.currentTarget.src = "../image/icon_list_item_empty.png";
            },
          cacheImage:function (event) {
                var tar = event.currentTarget;
                var urlPath = $api.attr(tar,"data-url");
                api.imageCache({
                    url: urlPath,
                }, function (ret, err) {
                    if (ret && ret.status) {
                        tar.setAttribute("src", ret.url);
                    }
                });
            }

方案三: 可以解決圖片加載一半的問題
html

 <img  v-lazy="item.HeadPhoto"  class="userheader" v-cloak>
<script type="text/javascript" src="../script/libscript/vue_lazy_catch.js"></script>

js

  Vue.use(VueLazyload);
    // 或者添加VueLazyload 選項
    Vue.use(VueLazyload, {
        preLoad: 1.3,
        error: '../image/icon_list_item_empty.png',
        loading: '../image/icon_list_item_empty.png',
        attempt: 1
    });

vue_lazy_catch.js下載地址

  1. 按下homte鍵后返回APP郎仆,先閃現(xiàn)出原生界面只祠,然后才是H5界面
    解決辦法:app開啟硬件加速,widget的config中配置window顏色扰肌。不過開啟硬件加速有弊端抛寝,我是只弄了window顏色

38.啟動Activity并加載了A.html,發(fā)現(xiàn)api.execScript無法執(zhí)行
當(dāng)你全新啟動一個Activity并加載了A.html曙旭,你想執(zhí)行A.js里面的某個function盗舰,然后你使用api.execScript執(zhí)行對應(yīng)的function,發(fā)現(xiàn)無效果桂躏。
原因:只要你全新啟動一個Activity的時候钻趋,它的winName默認是root,而不是你想要的WinName名稱剂习,所以就無法執(zhí)行函數(shù)蛮位。但是IOS卻可以指定winName,所以你就只能修改方法了

39.模塊未綁定
1鳞绕、確保模塊加入到平臺里面
2失仁、打開云編譯,生成SDK文件们何,并且下載文件
3萄焦、替換so包,apiEngine.jar包(平臺會將新增加的模塊名稱放入到apiEngine里面)冤竹,和新增你剛剛拿到的jar包拂封,
4茬射、配置config.xml

    <!--模塊名字-->
    <preference name="customRefreshHeader" value="模塊名稱,此處不可以錯誤烘苹,錯誤就無法正常使用"/>
模塊.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末躲株,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子镣衡,更是在濱河造成了極大的恐慌霜定,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廊鸥,死亡現(xiàn)場離奇詭異望浩,居然都是意外死亡,警方通過查閱死者的電腦和手機惰说,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門磨德,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吆视,你說我怎么就攤上這事典挑。” “怎么了啦吧?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵您觉,是天一觀的道長。 經(jīng)常有香客問我授滓,道長琳水,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任般堆,我火速辦了婚禮在孝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淮摔。我一直安慰自己私沮,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布和橙。 她就那樣靜靜地躺著仔燕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胃碾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天筋搏,我揣著相機與錄音仆百,去河邊找鬼。 笑死奔脐,一個胖子當(dāng)著我的面吹牛俄周,可吹牛的內(nèi)容都是我干的吁讨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼峦朗,長吁一口氣:“原來是場噩夢啊……” “哼建丧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起波势,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤翎朱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尺铣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拴曲,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年凛忿,在試婚紗的時候發(fā)現(xiàn)自己被綠了澈灼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡店溢,死狀恐怖叁熔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情床牧,我是刑警寧澤荣回,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站叠赦,受9級特大地震影響驹马,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜除秀,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一糯累、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧册踩,春花似錦泳姐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至慕的,卻和暖如春阎肝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肮街。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工风题, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓沛硅,卻偏偏與公主長得像眼刃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子摇肌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,302評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫擂红、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,121評論 4 61
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程围小,因...
    小菜c閱讀 6,444評論 0 17
  • 上周有條新聞吩抓,讓表妹的心臟遭到一萬點暴擊涉茧。 沒錯,你可能已經(jīng)猜到是啥—— 她老公(之一)抖森疹娶,跟別人跑了伴栓。 心碎的...
    Sir電影閱讀 4,897評論 18 114
  • 我追隨,你遺忘雨饺,到最后钳垮,誰也不記得誰,留時光空想额港,留記憶泛黃饺窿。 雨落入凡塵,風(fēng)飄散人間移斩,迷失了的心肚医,輪回幾世,亦是...
    凌晨chen閱讀 229評論 2 1