在Android中将返回的Java列表作为数组传递给webview Javascript

在Android中将返回的Java列表作为数组传递给webview Javascript,javascript,java,android,arrays,webview,Javascript,Java,Android,Arrays,Webview,我正在制作一个带有Webview组件的应用程序启动器,并试图将我从Package manager获得的应用程序列表传递到Webview中Javascript中的一个数组中。使用Javascript接口执行此操作。我已经能够以这种方式将int传递到javascript int变量中,当我在Webview中按下按钮以将int作为“p”元素加载时,它会将int显示为“p”元素,正如我预期的那样,但是当我尝试从按钮调用相同的函数以显示列表而不是int时,它给出了错误“method not found”,

我正在制作一个带有Webview组件的应用程序启动器,并试图将我从Package manager获得的应用程序列表传递到Webview中Javascript中的一个数组中。使用Javascript接口执行此操作。我已经能够以这种方式将int传递到javascript int变量中,当我在Webview中按下按钮以将int作为“p”元素加载时,它会将int显示为“p”元素,正如我预期的那样,但是当我尝试从按钮调用相同的函数以显示列表而不是int时,它给出了错误“method not found”,指的是试图调用getUserInstalledApplications()的按钮。此外,该按钮只是生成一条空消息。以下是Java:

    public class webViewInterface {
//允许在webview中将变量值传递给javascript

    Context mContext;
    webViewInterface(Context c) {
        mContext = c;
    }
    @JavascriptInterface
    public List<ApplicationInfo> getUserInstalledApplications(Context context) {
        // Get installed applications
        final PackageManager packageManager = context.getPackageManager();
        List<ApplicationInfo> installedApplications =
                packageManager.getInstalledApplications(PackageManager.GET_META_DATA);

        // Remove system apps
        Iterator<ApplicationInfo> it = installedApplications.iterator();
        while (it.hasNext()) {
            ApplicationInfo appInfo = it.next();
            if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
                it.remove();
            }
        }

        // Return installed applications
        return installedApplications;
    }
Context-mContext;
webViewInterface(上下文c){
mContext=c;
}
@JavascriptInterface
公共列表getUserInstalledApplications(上下文){
//获取安装的应用程序
final-PackageManager-PackageManager=context.getPackageManager();
列出已安装的应用程序=
packageManager.GetInstalledApplication(packageManager.GET_元数据);
//删除系统应用程序
Iterator it=installedApplications.Iterator();
while(it.hasNext()){
ApplicationInfo-appInfo=it.next();
if((appInfo.flags和ApplicationInfo.FLAG\u系统)!=0){
it.remove();
}
}
//返回已安装的应用程序
返回已安装的应用程序;
}
还有Javascript:

<div id="loadApps">
<button id="ShowApps" onClick="showAppList()">Show Apps</button>
<script type="text/javascript">
//var numberOfApps = null;
var listOfApps = null;
 function getFromAndroid(){
    listOfApps = MainActivityInterface.getUserInstalledApplications();
 }
 getFromAndroid();
 function showAppList(){
 // create node
 var appP = document.createElement("p");
 var t = document.createTextNode(listOfApps);
 appP.appendChild(t);                                          
 document.body.appendChild(appP);   
}

显示应用程序
//var numberOfApps=null;
var listOfApps=null;
函数getFromAndroid(){
listOfApps=MainActivityInterface.getUserInstalledApplications();
}
getFromAndroid();
函数showAppList(){
//创建节点
var appP=document.createElement(“p”);
var t=document.createTextNode(listOfApps);
附加儿童(t);
文件.正文.附件(appP);
}