2014-12-03 40 views
0

所以我按照说明在https://crosswalk-project.org/documentation/embedding_crosswalk/extensions.html上创建了Crosswalk扩展。我的问题涉及扩展XWalkExtension类。Crosswalk - 如何在XWalkExtension类中获取android应用程序上下文?

package org.crosswalkproject.sample; 

import org.xwalk.core.XWalkExtension; 

public class ExtensionEcho extends XWalkExtension { 
    private static String name = "echo"; 

    private static String jsapi = "var echoListener = null;" + 
     "extension.setMessageListener(function(msg) {" + 
     " if (echoListener instanceof Function) {" + 
     " echoListener(msg);" + " };" + "});" + 
     "exports.echo = function (msg, callback) {" + 
     " echoListener = callback;" + " extension.postMessage(msg);" + 
     "};" + "exports.echoSync = function (msg) {" + 
     " return extension.internal.sendSyncMessage(msg);" + "};"; 

    public ExtensionEcho() { 
     super(name, jsapi); 
    } 

    @Override 
    public void onMessage(int instanceID, String message) { 
     postMessage(instanceID, "From java: " + message); 
    } 

    @Override 
    public String onSyncMessage(int instanceID, String message) { 
     return "From java sync: " + message; 
    } 

} 

扩展XWalkExtension类时,如何获取android应用程序上下文?因此,如果我想创建一个Toast消息,我可以传入上下文。

回答

1

没有公开记录的界面来从XWalkExtension获取活动。您可以修改构造函数以存储对Activity的私有引用,然后将其从实例化扩展的地方传入。

public class ExtensionEcho extends XWalkExtension { 
    private final Activity activity; 

    public ExtensionEcho(Activity activity) { 
     this.activity = activity; 
    } 

    ... 
} 
相关问题