如何跨android和JS桥配置通用数据模型?

我在 Android 中有一个 JS 桥,


public class WebInterface {

    Context mContext;

    public WebInterface(Context c) { this.mContext = c;}


    @JavascriptInterface

    public void showAlert() {

         Toast.makeText(mContext, "This is being called from the interface", Toast.LENGTH_SHORT).show();

    }

}

我可以在我的webView,


mWebView.addJavascriptInterface(WebInterface(this), "android"); 

这适用于简单的方法,例如showAlert()当 params 或 param 是简单字符串时没有参数的地方,但是当我需要在从 Web 应用程序调用本机函数时将数据模型作为参数传递时,如何绑定数据模型?我需要使用自定义数据模型类型的参数调用实现函数。


public class WebInterface {

    Context mContext;

    public WebInterface(Context c) { this.mContext = c;}


    @JavascriptInterface

    public void showAlert() {

       Toast.makeText(mContext, "This is being called from the interface", Toast.LENGTH_SHORT).show();


    public void saveData(data: DataModel) { // DataModel is custom model

       Toast.makeText(mContext, "Saving data model", Toast.LENGTH_SHORT).show();

    }

}

如何跨本机和 Web 应用程序绑定数据模型。是否可以使用 TypeScript?如果可以,如何配置?是否只能使用普通的 json 字符串作为参数?没有其他办法吗?


波斯汪
浏览 100回答 2
2回答

素胚勾勒不出你

您应该使用 JSON 字符串。您可以创建另一个函数来接收您想要的格式,然后在传递给函数之前对对象进行 JSON.stringify。Javascriptfunction saveData(obj){  const json = JSON.stringify(obj);  Android.saveData(json);}

至尊宝的传说

替代使用 JSON.parse(data)javascriptfunction loadJson(obj) {  var jsonValue = JSON.parse(obj)  Android.saveData(jsonValue)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript