//uniapp原生跳转 无返回值?
package io.dcloud.uniplugin;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Map;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
public class TestModule extends UniModule {
String TAG = "TestModule";
public static int REQUEST_CODE = 1000;
//run ui thread
@UniJSMethod(uiThread = true)
public void testAsyncFunc(JSONObject options, UniJSCallback callback) {
Log.e(TAG, "testAsyncFunc--"+options);
Log.e(TAG, "大家好--"+options);
if(callback != null) {
JSONObject data = new JSONObject();
data.put("code", "大家好");
callback.invoke(data);
//callback.invokeAndKeepAlive(data);
}
}
//run JS thread
@UniJSMethod (uiThread = false)
public JSONObject testSyncFunc(){
JSONObject data = new JSONObject();
data.put("code", "success");
return data;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE && data.hasExtra("respond")) {
Log.e("TestModule", "原生页面返回----"+data.getStringExtra("respond"));
//返回原生
Map<String,Object> params=new HashMap<>();
params.put("key","data.getStringExtra(\"respond\")");
mWXSDKInstance.fireGlobalEventCallback("myEvent", params);
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@UniJSMethod (uiThread = true)
public void gotoNativePage(UniJSCallback callback){
Log.e("TestModule", "原生页面返回----");
if(mUniSDKInstance != null && mUniSDKInstance.getContext() instanceof Activity) {
Intent intent = new Intent(mUniSDKInstance.getContext(), NativePageActivity.class);
((Activity)mUniSDKInstance.getContext()).startActivityForResult(intent, REQUEST_CODE);
}
}
}
//跳转端
package io.dcloud.uniplugin;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
public class NativePageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout rootView = new FrameLayout(this);
TextView textView = new TextView(this);
textView.setTextColor(Color.BLACK);
textView.setTextSize(30);
textView.setText("点击我将返回 并携带参数返回");
rootView.addView(textView, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300));
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("respond", "我是原生页面");
setResult(TestModule.REQUEST_CODE, intent);
finish();
}
});
setContentView(rootView);
}
}
//这是uniapp端
gotoNativePage() {
//testModule.gotoNativePage();
testModule.gotoNativePage('myEvent', function(e) {
console.log('myEvent'+JSON.stringify(e)); **这里为什么看不到返回值?我该怎么写?**
});