在MainAcitivity中:

我在一個webview中調起一個js介面
(這個介面就是上面這個androidJsUtils中的)

這個介面讓mainactivity去調起拍斬訓者圖庫,操作完之后我在onActivityResult方法里面去取到了這兩個圖片,如下

我現在無法處理就是如何讓介面回傳這個onActivityResult中處理好的圖片,如果像上面這樣寫一開始就回傳了,我一開始的想法是讓這個執行緒阻塞等待我圖片onActivityResult處理完整后,再return那個bitmap,問題是這個介面是在主執行緒中的,如果阻塞了連那個dialog都進不去,不阻塞又回第一時間回傳那個空的bitmap。
uj5u.com熱心網友回復:
hs呼叫java方法不是在主執行緒的,所以你再return之前加個鎖wait應該是可行的,一般不這樣做,你可以在介面里面加個callback,當拿到圖片后通過callback回呼結果
uj5u.com熱心網友回復:
這個回呼怎么寫 老哥能不能幫忙給個簡單的例子,雖然知道是回呼了,但是完全不會寫啊uj5u.com熱心網友回復:
@JavascriptInterfacepublic void addPhoto(String str) {//"{"callBack":"callBack"}"
try {
if (TextUtils.isEmpty(str)) return;
JSONObject object = new JSONObject(str);
callBack = object.getString("callBack");
} catch (JSONException e) {
e.printStackTrace();
}
}
拿到圖片后執行:
handler.post(new Runnable() {
@Override
public void run() {
String url = "javascript:" + callBack + "(" + callbackStr + ")";
Logger.d(TAG, "load js url=" + url);
webView.loadUrl(url);
}
});
這個callback是一個js的方法名,需要web端傳給你
uj5u.com熱心網友回復:
callbackStr 是你跟web端約定好的圖片資訊的資料uj5u.com熱心網友回復:
老哥 多謝 我這個弄出來了uj5u.com熱心網友回復:
做個輪詢子執行緒也行轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/10781.html
標籤:Android
