如何从可观察的值返回到JavascriptInterface方法?

问题描述 投票:0回答:1

我需要从联系人中返回值,这些值可以通过电话从手机上检索到。问题在于返回值。

我在网桥中有下一个方法:

@JavascriptInterface
    public String getFavoriteUsers() {
        return getBridgeHelper().getFavoriteUsers();
    }

它正在一个帮助器中(该类是如何执行任务的)并在该帮助器内部调用方法:

@SuppressLint("CheckResult")
    public String getFavoriteUsers() {

        Observable.fromCallable(() -> {
            SharedPreferences sp = getContext().getSharedPreferences(Constants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
            String userIdStores = sp.getString(Constants.SP_FAVOURITES, "[]");
            return new Gson().toJson(ContactsManager.findContactsById(ContactsData.getInstance().contactsStored, userIdStores));
        })
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(
                        result -> returnObservedContacts(result),
                        throwable -> LoggerManager.handlesError(TAG, throwable, throwable.getMessage())
                );
    }

所以,我需要将此结果返回到上一个桥,但是我不清楚如何做到这一点。

谢谢

android return observable rx-java
1个回答
0
投票

不是从getFavoriteUsers返回结果,而是在网站内的<script>标记内创建一个方法,该方法接受contacts的列表作为参数,然后调用此方法。

[This StackOverflow答案说明了如何调用javascript函数

编辑:将联系人加载到Webview页面的OnCreate并将结果保存到全局变量,然后调用Webview的loadUrl。并在getFavoriteUsers

上返回全局保存的结果
© www.soinside.com 2019 - 2024. All rights reserved.