增加扫码的回调
This commit is contained in:
parent
64ecbe17f4
commit
8c1cee23dd
@ -14,8 +14,8 @@ import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.Window;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.jc.jcfw.JcSDK;
|
||||
import com.king.zxing.CameraScan;
|
||||
import com.king.zxing.CaptureActivity;
|
||||
import com.king.zxing.util.CodeUtils;
|
||||
@ -50,6 +50,7 @@ public class MainActivity extends Activity
|
||||
|
||||
public static final int RC_READ_PHOTO = 0X02;
|
||||
private String title;
|
||||
private String funId;
|
||||
|
||||
protected String updateUnityCommandLineArguments(String cmdLine) {
|
||||
return cmdLine;
|
||||
@ -81,13 +82,18 @@ public class MainActivity extends Activity
|
||||
switch (requestCode){
|
||||
case REQUEST_CODE_SCAN:
|
||||
String result = CameraScan.parseScanResult(data);
|
||||
Log.i(TAG, "scan qrcode result: " + result);
|
||||
Log.i(TAG, "scan qrcode with funId: " +funId+ " result: " + result);
|
||||
String jsonStr = String.format("{errcode: 0, data: '%s'}", result);
|
||||
JcSDK.csCallback(funId, jsonStr);
|
||||
funId = "";
|
||||
break;
|
||||
case REQUEST_CODE_PHOTO:
|
||||
// parsePhoto(data);
|
||||
Log.i(TAG, "request qrcode img result: " + data);
|
||||
parsePhoto(data);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
JcSDK.csCallback(funId, "{errcode: 0, errmsg: 'cancel'}");
|
||||
funId = "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -237,6 +243,10 @@ public class MainActivity extends Activity
|
||||
public void onPermissionsDenied(int requestCode, List<String> list) {
|
||||
// Some permissions have been denied
|
||||
// ...
|
||||
if (requestCode ==RC_CAMERA && null != funId && !"".equals(funId)) {
|
||||
JcSDK.csCallback(funId, "{errcode: 1, errmsg: 'no camera permission'}");
|
||||
funId = "";
|
||||
}
|
||||
}
|
||||
|
||||
// end of easypermissions
|
||||
@ -278,20 +288,23 @@ public class MainActivity extends Activity
|
||||
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),data.getData());
|
||||
asyncThread(() -> {
|
||||
final String result = CodeUtils.parseCode(bitmap);
|
||||
runOnUiThread(() -> {
|
||||
LogUtils.d("result:" + result);
|
||||
Toast.makeText(getContext(),result,Toast.LENGTH_SHORT).show();
|
||||
});
|
||||
LogUtils.d("result:" + result);
|
||||
String jsonStr = String.format("{errcode: 0, data: '%s'}", result);
|
||||
JcSDK.csCallback(funId, jsonStr);
|
||||
funId = "";
|
||||
});
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
JcSDK.csCallback(funId, String.format("{errcode: 1, errmsg: '%s'}", e.toString()));
|
||||
funId = "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void showQRScan(String title) {
|
||||
public void showQRScan(String funId, String title) {
|
||||
this.title = title;
|
||||
this.funId = funId;
|
||||
checkCameraPermissions();
|
||||
}
|
||||
|
||||
|
@ -18,27 +18,27 @@ public class JcSDK {
|
||||
}
|
||||
|
||||
/**
|
||||
* @Deprecated
|
||||
* 不使用该方法, 直接由unity调用cpp方法
|
||||
* @param password
|
||||
*/
|
||||
public static void initWallet(String password) {
|
||||
Log.i(TAG, "call init wallet from unity with password: " + password);
|
||||
CocosJSHelper.initWallet(password);
|
||||
commonCB.stringCallback("wallet init success");
|
||||
commonCB.stringCallback("", "wallet init success");
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调至c#
|
||||
* @param funId
|
||||
* @param msg
|
||||
*/
|
||||
public static void csCallback(String funId, String msg) {
|
||||
if (!funId.equals("jscall")) {
|
||||
commonCB.stringCallback(funId, msg);
|
||||
}
|
||||
}
|
||||
|
||||
// public static void connectWallet(String url){
|
||||
// Uri uri = Uri.parse(url);
|
||||
// Log.i(TAG, url);
|
||||
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
// try {
|
||||
// MainActivity.app.startActivity(intent);
|
||||
// } catch (ActivityNotFoundException e) {
|
||||
// Intent i = new Intent(Intent.ACTION_VIEW);
|
||||
// i.setData(Uri.parse("https://metamask.io/download/"));
|
||||
// MainActivity.app.startActivity(i);
|
||||
// }
|
||||
// }
|
||||
/**
|
||||
* check if metamask installed and jump to metamask
|
||||
* @param url
|
||||
@ -58,7 +58,7 @@ public class JcSDK {
|
||||
}
|
||||
}
|
||||
|
||||
public static void scanQRCode(String title) {
|
||||
MainActivity.app.showQRScan(title);
|
||||
public static void scanQRCode(String funid, String title) {
|
||||
MainActivity.app.showQRScan(funid, title);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
package com.jc.jcfw;
|
||||
|
||||
public interface UnityCallback {
|
||||
public void stringCallback(String str);
|
||||
public void stringCallback(String funId, String str);
|
||||
}
|
||||
|
@ -233,8 +233,7 @@ function restoreFromMnemonic(funId, mnemonic, password) {
|
||||
|
||||
function scanQRCode(funId, title) {
|
||||
try {
|
||||
jsb.scanQRCode(title);
|
||||
return JSON.stringify({errcode: 0});
|
||||
jsb.scanQRCode(funId, title);
|
||||
} catch(err) {
|
||||
return JSON.stringify({errcode: 1, errmsg: err});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user