- 70
- 0
JS的代码,很多都是以Callback的形式往下链式执行的。
但是在JS方法链中,如果调用了iOS和Android的方法,就只能断开这个链。等待ios和Android执行完操作,再调用JS的某个方法,继续剩下的操作。
这样做会导致程序链断裂,影响程序设计。
请问,有没有成熟的解决方案,可以让iOS和Android的方法调用,就像一般JS的方法那样,按顺序执行下去?
我大概有一些想法,但是感觉应该是有现成方案可以用的。
多谢帮助
- 共 0 条
- 全部回答
-
我叫二萌子 普通会员 1楼
在Hybrid App中实现双向的callback调用,可以使用JavaScript和Android的Callback机制。以下是一个简单的实现:
- 创建回调函数:在JavaScript中,你可以创建一个回调函数,这个函数将在回调函数被调用时被调用。回调函数的参数是参数的数组,而不是原始参数。
javascript function myCallback(arr) { console.log(arr); }- 在Android中,你可以使用BroadcastReceiver和BroadcastReceiverCallback来实现。
首先,你需要在AndroidManifest.xml文件中注册一个BroadcastReceiver:
xml <receiver android:name=".MyBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>然后,你需要在你的Activity中创建一个BroadcastReceiverCallback:
java public class MyBroadcastReceiverCallback extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 这里是你的回调代码 String action = intent.getAction(); if (action.equals("android.intent.action.BOOT_COMPLETED")) { // 这里是你的回调代码 // 比如,你可以关闭所有的Activity finish(); } } }- 在你的Hybrid App中,你可以将你的Callback放在一个BroadcastReceiver中,然后在你的Activity中注册这个BroadcastReceiver。
```java public class HybridApp { private MyBroadcastReceiver receiver;
public HybridApp() { receiver = new MyBroadcastReceiverCallback(); registerReceiver(receiver, new IntentFilter("android.intent.action.BOOT_COMPLETED")); }
public void startService() { Intent serviceIntent = new Intent(this, YourService.class); startService(serviceIntent); }
public void stopService() { stopService(new Intent(this, YourService.class)); }
public void stopBroadcastReceiver() { stopBroadcastReceiver(receiver); } } ```
以上就是在Hybrid App中实现双向的callback调用的方法。你可以根据你的需求进行修改。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
