我需要从联系人中返回值,这些值可以通过电话从手机上检索到。问题在于返回值。
我在网桥中有下一个方法:
@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())
);
}
所以,我需要将此结果返回到上一个桥,但是我不清楚如何做到这一点。
谢谢
不是从getFavoriteUsers
返回结果,而是在网站内的<script>
标记内创建一个方法,该方法接受contacts
的列表作为参数,然后调用此方法。
[This StackOverflow答案说明了如何调用javascript函数
编辑:将联系人加载到Webview页面的OnCreate
并将结果保存到全局变量,然后调用Webview的loadUrl
。并在getFavoriteUsers