-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
我用的是via浏览器,选择下载内核问题 #412
Comments
这个得研究一下 |
看了一下via的逻辑,via内部有个写死的名单,在名单里&已安装才会显示,然后有下载任务后发给指定的界面。估计得两边联调了。 |
那我还是提供一个 |
adm有 <intent-filter>
<action
android:name="android.intent.action.SEND" />
<action
android:name="android.intent.action.SEND_MULTIPLE" />
<category
android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="*/*" />
</intent-filter> 然后via是这样发的 public boolean m1073a(Context context, String str) {
if (this.f8020c > 0 && !TextUtils.isEmpty(str)) {
Intent intent = new Intent();
intent.addFlags(268435456);
intent.setType("text/plain");
intent.setAction("android.intent.action.SEND");
intent.putExtra("android.intent.extra.TEXT", str);
String[][] strArr = f8019b;
int i = this.f8020c;
intent.setComponent(new ComponentName(strArr[i][0], strArr[i][2]));
try {
context.startActivity(intent);
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
} |
我是 Via 的作者,今天正好看到相关反馈,下载了 Gopeed 应用打算适配,发现无法直接接入,还需要 Gopeed 做一些额外工作。 我先来解释下 Via 的做法,Via 调用一个第三方下载器,需要这么几个定义:
对于 ADM 来说,各项定义如下:
这也是 DearZack 所说 Via 内部有个写死名单的原因,对于不在名单中的下载器,Via 无法假定它的下载入口,所以只能事先主动适配将属性存在应用里。 monkeyWie 说的 schema 是一个好方案,很适合拿来做跨平台方案。但在 android 端,常见的做法,还是通过 Intent 调用。简单来说,Gopeed 只需要提供一个新建下载任务的 Activity 入口(当然复用 MainActivity 也是可以的),并在 Activity#onNewIntent 及 Acticity#onCreate 处理 Intent,将下载链接及其它各种参数提取出来丢给 Flutter 界面即可。 |
@tuyafeng @DearZack 感谢两位热心的回复,由于我没有太多的安卓开发经验,有个问题咨询下。 目前我有一个 gopeed/ui/flutter/android/app/src/main/AndroidManifest.xml Lines 10 to 74 in c696b59
如果我只提供这一个 |
这么做是没问题的,就是需要再在 MainActivity 里处理收到的 Intent。AndroidManifest.xml 的声明是告诉系统,应用可以处理关联的数据,但如何处理数据,需要应用在对应的 Activity(即 MainActivity)的 onNewIntent 和 onCreate 实现。 |
@tuyafeng 方便提供一个测试apk给我么,就gopeed而言的话,
我修改一下,到时候提个PR上来 |
@monkeyWie 好的,我已经把 Gopeed 加到 Via 的下载器支持列表里,你可以在 Telegram@ViaAPKs 频道下载测试包,5.5.0.b7 及之后的版本都是支持的。 |
我看了文档了,我理解了。 |
@DearZack 可以加下我微信(bGl3ZWktODQ2Ng==),或者在discord联系我 |
1.5.6 已发布 |
在安装ADM后,via可以选择将下载器切换到ADM,这样后续有下载任务会自动交给ADM。
但是安装gopeed后没有这个选择,请问可以支持吗?
The text was updated successfully, but these errors were encountered: