日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...

發(fā)布時間:2023/12/10 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文是推薦使用過jsb.reflection的開發(fā)者進(jìn)行閱讀。關(guān)于jsb.reflection的說明請參照:

我們在代碼編寫過程中,通常會需要在js腳本中調(diào)用到j(luò)ava代碼或者Objective-C的代碼。例如:接入sdk,顯示webview,使用原生代碼,接入廣告等等。

現(xiàn)在以在js腳本在Android中使用webview為例。

首先在js腳本中加入如下代碼。調(diào)用java端的webview

var webUrl = "http://www.baidu.com";if(cc.sys.os ==cc.sys.OS_ANDROID){this.addKeyListener();this.webViewId = jsb.reflection.callStaticMethod("org/cocos2dx/lib/Cocos2dxWebViewHelper", "createWebView", "()I");if(this.webViewId < 0) return;

jsb.reflection.callStaticMethod("org/cocos2dx/lib/Cocos2dxWebViewHelper", "setScalesPageToFit", "(IZ)V", this.webViewId, true);

jsb.reflection.callStaticMethod("org/cocos2dx/lib/Cocos2dxWebViewHelper", "loadUrl", "(ILjava/lang/String;)V", this.webViewId, webUrl);

}

這段代碼執(zhí)行以后,會在界面上生成一個webview,顯示百度的主頁。

但是實(shí)際情況是,我們在編譯Android版本運(yùn)行以后發(fā)現(xiàn)。在顯示完百度主頁以后,程序就崩潰了。

查看后臺后發(fā)現(xiàn)后臺提示了這兩個問題。

看上面的提示,標(biāo)識的是c++端,沒有實(shí)現(xiàn)Java_org_cocos2dx_lib_Cocos2dxWebViewHelper_didFinishLoading 函數(shù), 但是實(shí)際上。我們會發(fā)現(xiàn),這段代碼實(shí)際上已經(jīng)在cocos2d-x/cocos/ui/UIWebViewImpl-android.cpp中實(shí)現(xiàn)了。并且已經(jīng)編譯進(jìn)去了。

這是為什么呢?

答案其實(shí)是, 我們在Cocos2d-JS 3.2版本的時候,做過的安裝包體積自動縮減功能在作怪。

我們在安裝包體積縮減的時候采用了 LOCAL_STATIC_LIBRARIES 的方式鏈接c++各個庫文件。這種鏈接方式會在在連接靜態(tài)連接庫的時候移除"daed code",何謂dead code呢,就是調(diào)用者模塊永遠(yuǎn)都不會用到的代碼段和變量。

由于我們是在js腳本中引用的webview對象,而在c++代碼中并沒有使用webview對象,這就導(dǎo)致了,c++在生成so鏈接庫的時候,將webview這部分代碼給移除了。

解決方案:

只需要在我們的c++代碼中顯示調(diào)用以下即可。

在appDelegate.cpp中引入頭文件,引入

#include"ui/UIWebView.h"

在函數(shù) applicationDidFinishLaunching最后,加上

即可。

總結(jié)

以上是生活随笔為你收集整理的jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。