android:完善代码,实现 close 方法。
This commit is contained in:
25
plugin.xml
25
plugin.xml
@@ -1,2 +1,25 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<plugin id="cordova-shuto-api" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android"><name>ShutoApi</name><js-module name="ShutoApi" src="www/ShutoApi.js"><clobbers target="cordova.plugins.ShutoApi" /></js-module><platform name="android"><config-file parent="/*" target="res/xml/config.xml"><feature name="ShutoApi"><param name="android-package" value="com.shuto.feishuapi.ShutoApi" /></feature></config-file><config-file parent="/*" target="AndroidManifest.xml" /><source-file src="src/android/ShutoApi.java" target-dir="src/com/shuto/feishuapi/ShutoApi" /></platform><platform name="ios"><config-file parent="/*" target="config.xml"><feature name="ShutoApi"><param name="ios-package" value="ShutoApi" /></feature></config-file><source-file src="src/ios/ShutoApi.m" /></platform></plugin>
|
||||
<plugin id="cordova-shuto-api" version="1.0.0"
|
||||
xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<name>ShutoApi</name>
|
||||
<js-module name="ShutoApi" src="www/ShutoApi.js">
|
||||
<clobbers target="cordova.plugins.ShutoApi" />
|
||||
</js-module>
|
||||
<platform name="android">
|
||||
<config-file parent="/*" target="res/xml/config.xml">
|
||||
<feature name="ShutoApi">
|
||||
<param name="android-package" value="cn.shuto.feishuapi.ShutoApi" />
|
||||
</feature>
|
||||
</config-file>
|
||||
<source-file src="src/android/ShutoApi.java" target-dir="src/cn/shuto/feishuapi" />
|
||||
</platform>
|
||||
<platform name="ios">
|
||||
<config-file parent="/*" target="config.xml">
|
||||
<feature name="ShutoApi">
|
||||
<param name="ios-package" value="ShutoApi" />
|
||||
</feature>
|
||||
</config-file>
|
||||
<source-file src="src/ios/ShutoApi.m" />
|
||||
</platform>
|
||||
</plugin>
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.shuto.feishuapi;
|
||||
package cn.shuto.feishuapi;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import org.apache.cordova.CordovaPlugin;
|
||||
import org.apache.cordova.CallbackContext;
|
||||
import org.apache.cordova.PluginResult;
|
||||
import org.apache.cordova.LOG;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
@@ -12,6 +15,7 @@ import org.json.JSONObject;
|
||||
* This class implements a Cordova plugin for Shuto API.
|
||||
*/
|
||||
public class ShutoApi extends CordovaPlugin {
|
||||
private static final String TAG = "ShutoApi";
|
||||
|
||||
// 保存事件回调上下文
|
||||
private CallbackContext eventCallbackContext;
|
||||
@@ -19,7 +23,6 @@ public class ShutoApi extends CordovaPlugin {
|
||||
@Override
|
||||
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
|
||||
if (action.equals("close")) {
|
||||
// 修复:close方法现在不需要参数
|
||||
this.close(callbackContext);
|
||||
return true;
|
||||
} else if (action.equals("registerEvent")) {
|
||||
@@ -33,14 +36,20 @@ public class ShutoApi extends CordovaPlugin {
|
||||
}
|
||||
|
||||
private void close(CallbackContext callbackContext) {
|
||||
// TODO: Implement close method
|
||||
LOG.d(TAG, "close()");
|
||||
cordova.getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
cordova.getActivity().moveTaskToBack(true);
|
||||
}
|
||||
});
|
||||
callbackContext.success();
|
||||
}
|
||||
|
||||
private void registerEvent(CallbackContext callbackContext) {
|
||||
// 保存事件回调上下文,以便后续发送事件
|
||||
this.eventCallbackContext = callbackContext;
|
||||
|
||||
|
||||
// 返回插件结果,但保持回调通道打开
|
||||
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK);
|
||||
pluginResult.setKeepCallback(true);
|
||||
@@ -57,11 +66,11 @@ public class ShutoApi extends CordovaPlugin {
|
||||
try {
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("route", route);
|
||||
|
||||
|
||||
if (parameters != null) {
|
||||
data.put("params", parameters);
|
||||
}
|
||||
|
||||
|
||||
fireEvent("navigate", data);
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
@@ -73,17 +82,17 @@ public class ShutoApi extends CordovaPlugin {
|
||||
if (this.eventCallbackContext == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
// 创建事件数据
|
||||
JSONObject eventData = new JSONObject();
|
||||
eventData.put("type", type);
|
||||
|
||||
|
||||
// 添加参数(如果有)
|
||||
if (parameters != null) {
|
||||
eventData.put("params", parameters);
|
||||
}
|
||||
|
||||
|
||||
// 发送事件到前端
|
||||
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, eventData);
|
||||
pluginResult.setKeepCallback(true);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
cordova.define("cordova-shuto-api.ShutoApi", function(require, exports, module) {
|
||||
var exec = require('cordova/exec');
|
||||
var channel = require('cordova/channel');
|
||||
|
||||
// 初始化插件对象
|
||||
var ShutoApi = {
|
||||
@@ -57,3 +57,5 @@ function onEvent(eventData) {
|
||||
exec(onEvent, null, 'ShutoApi', 'registerEvent', []);
|
||||
|
||||
module.exports = ShutoApi;
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user