簡體   English   中英

Crosswalk-如何在XWalkExtension類中獲取android應用程序上下文?

[英]Crosswalk - How do you get android application context in the XWalkExtension class?

因此,我正在按照https://crosswalk-project.org/documentation/embedding_crosswalk/extensions.html上創建Crosswalk擴展的說明進行操作。 我的問題與擴展XWalkExtension類有關。

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消息,則可以在上下文中傳遞。

沒有公開記錄的接口可從XWalkExtension獲取活動。 您可以修改構造函數以存儲對Activity的私有引用,然后只需從實例化擴展的地方將其傳遞即可。

public class ExtensionEcho extends XWalkExtension {
    private final Activity activity;

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

    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM