我正在开发一个Android应用程序,其webview指向另一个团队的动态网站.
当我下载一个文件(主要是动态重定向的 PDF和ZIP)时,我得到的是下载文件夹中的一个文件,其中包含一些HTML代码,其中包含"用户不允许读取文件"的消息,无论我如何实现下载,我尝试:
都具有相同的结果.
使用普通浏览器导航下载工作正常,无论是在台式PC,Android还是iOS设备上.
为什么webview不能访问文件?
可能是一个会话问题?http端口?
我真的需要一些想法...
另一个提示:当从同一个链接下载两个文件时,链接将重定向到同一个文件,但会产生两个不同的文件名...
编辑:而不是将webView指向web-app ,我试图指向一个带链接重定向的常见网页下载另一个文件,好吧,只是它的工作原理.
以下是webview.setDownloadListener - onDownloadStart()参数:
userAgent=Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36
contentDisposition=attachment;
filename=correct_filename.pdf,
url=http://www.xxx.xx/site/downloadfile.wplus?REDIRECTFILE=D-507497120&ID_COUNTOBJ=ce_5_home&TYPEOBJ=CExFILE&LN=2
mimeType=application/octet-stream
Run Code Online (Sandbox Code Playgroud)
这是一些代码
wv.getSettings().setSupportMultipleWindows(true);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setDisplayZoomControls(false);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength){
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("Download file...");
request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimetype));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); …Run Code Online (Sandbox Code Playgroud) 我正在使用 Firebase DynamicLinks 并想知道是否有办法编辑用户打开无效或已删除链接时出现的页面?
我试图在 Firebase 托管的公共文件夹中提供 404.html,但没有按预期工作。
dynamic-links firebase firebase-hosting firebase-dynamic-links
所以我有一段看起来像这样的HTML ......
<p>This is some copy. In this copy is the word hello</p>
Run Code Online (Sandbox Code Playgroud)
我想使用jquery将单词hello转换为链接.
<p>This is some copy. In this copy is the word <a href="">hello</a></p>
Run Code Online (Sandbox Code Playgroud)
这本身并不太难.我的问题是,如果这个词已经是一个链接,如下面的例子...
<p>In this copy is the <a href="">word hello</a></p>
Run Code Online (Sandbox Code Playgroud)
我不希望最终在链接中找到链接...
<p>In this copy is the <a href="">word <a href="">hello</a></a></p>
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
我已经在应用程序的启动屏幕上实现了firebase延迟deeplink和检索数据。firebase deeplink当应用程序已安装在设备中时,它可以正常工作。我想测试共享链接且应用程序未安装在设备上而无需从 Playstore 下载的情况,因为 ply 商店应用程序没有接收代码。我尝试通过单击链接来模拟下载,它需要进入 Playstore 应用程序页面,然后从其他地方下载并打开它。但是,我没有得到任何数据firebase PendingDynamicLinkData。奇怪的是我也没有收到任何回调getDynamicLink。但是,如果我单击链接并且应用程序已安装,则一切正常。
我的问题是如何测试设备上未安装应用程序的情况,然后检索动态链接的数据。
下面是我在启动屏幕中检索数据的代码
FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
Log.d("firebase deeplink", "onSuccess");
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
mInterceptedData = deepLink;
Log.d("firebase deeplink", "onSuccess" + deepLink);
}
}
}).addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) …Run Code Online (Sandbox Code Playgroud) 问题:为什么以编程方式创建的“短动态链接”不会直接打开/启动应用程序?
我想在用户单击由 android 应用程序动态创建的动态 url 时直接启动应用程序。
单击由 android 应用程序动态创建的动态短链接时,会发生以下情况,
1.Option 显示两个选项,一个是通过 chrome 另一个是通过 app
2.如果我选择 chrome 选项,浏览器将打开,显示一个加载对话框并使用 PendingDynamicLinkData 数据启动应用程序
3.但如果我选择应用程序选项,应用程序启动应用程序但 PendingDynamicLinkData 丢失或为空。
任何帮助都会很棒。我的清单设置如下
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="myapp.page.link" android:scheme="http"/>
<data android:host="myapp.page.link" android:scheme="https"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud) android dynamic-links firebase deeplink firebase-dynamic-links
我正在使用py-firebase-dynamic-links创建短动态链接,我们可以在其中设置此处提供的参数。desktopFallbackLink但是, REST API 上没有可使用的参数。
我需要设置一个在桌面上打开的链接。我现在想做的是手动创建动态链接(以便能够设置参数ofl)并仅使用 REST API 生成短链接(请求负载仅包含而不包含longDynamicLink参数)
但我可能以错误的方式构建 url。
目前该网址如下所示:
{DYNAMIC_LINK}/?link=http.examplelink.com/confirm-account?uuid={uuid}&token={token}/&apn={package_name}&ibi={bundle_id}&ofl={desktop_link}"
Run Code Online (Sandbox Code Playgroud)
示例: https:// my_subdomain .page.link/?link= my_deep_link?uuid={uuid}&token={token} &apn= package_name &ibi= bundle_id &aofl= Desktop_link
现在生成的链接在 iOS 和 Android 上都会打开正确的屏幕(但我不确定 uuid 和 token 参数是否正确传递,因为我还没有测试)。
但在桌面上它不会打开 ofl 参数指定的链接。而且它只显示url路径上的uuid,甚至连token参数都没有正确传递。
我尝试对 url 进行编码,但没有什么区别。
有谁知道错误出在哪里或者如何正确设置 ofl 参数?
编辑:
我现在有:https://my_subdomain.page.link/ ? link= my_encoded_deep_link &apn= package_name &ibi= bundle_id &afl= encoded_desktop_link &d=1
当 d=1 时,我可以看到目标 urlencoded_desktop_link 是不允许的。不允许的网址是什么意思?
我正在使用firebase动态链接邀请朋友加入我的应用.一切都很好.点击邀请链接将我带到Playstore.当我安装应用程序并等到它完成后,Playstore会向我显示"继续"按钮.当我点击此按钮时,应用程序会打开,我会收到跟踪邀请的深层链接.
但是当我安装应用程序时,关闭Playstore并通过应用程序抽屉打开应用程序我没有收到深层链接.
这是预期的行为吗?
我的问题是,我正在寻找仅在第一个应用程序启动时的邀请链接.因此,当用户通过邀请链接安装我的应用程序但不使用playstore继续按钮打开它时,永远不会跟踪邀请.
谢谢您的帮助.
android dynamic-links invite firebase firebase-dynamic-links
我尝试在 Firebase 控制台创建动态链接,以导航用户在 appStore 下载我的应用程序,当他们第一次启动应用程序时,我不断获取带有 nil url 的 DynamicLink 对象。
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
// dynamicLink url is nil
}
}
Run Code Online (Sandbox Code Playgroud)
<FIRDynamicLink: 0x281ad2a40, url [(null)], match type: none, minimumAppVersion: N/A, match message: (null)>
Run Code Online (Sandbox Code Playgroud)
网址是
MyAppSchema://google/link/?dismiss=1&is_weak_match=1
Run Code Online (Sandbox Code Playgroud)
当我进行诊断时我得到了这个
---- Firebase Dynamic Links diagnostic output start ----
Firebase Dynamic Links framework version 3.0.1
System information: OS iOS, OS version 12.1.4, model iPhone
Current date …Run Code Online (Sandbox Code Playgroud) 我所有动态生成的动作链接等都在创建像/ A ccount/S etup 这样的链接.看起来很奇怪.
我希望我的所有链接都是小写的(意思是/帐户/设置).有什么办法吗?
我没有解释清楚.
但我的意思是,如果我有一个ajax脚本通过函数'loadpage('whatever.php')加载DIV元素中页面的内容,而不是手动对所有链接执行此操作,是有一种方法可以让脚本自动使所有常规链接通过该ajax函数加载吗?
就像在Facebook上一样,您的个人资料通过ajax加载,但如果您查看他们的代码,他们只需要定期链接到个人资料.
干杯!
当我从 Firebase 控制台手动创建动态链接时,它会在“动态链接”部分中列出,但是当以编程方式创建链接时,它不会在 Firebase 控制台的“动态链接”部分中列出。
这些以编程方式创建的链接可以正常工作,但未列出。
我已关注此博客以在我的 Flutter 应用程序中设置动态链接。链接:https ://www.filledstacks.com/post/dynamic-links-in-flutter-a-complete-guide/
dynamic-links deep-linking firebase flutter firebase-dynamic-links
我在 Flutter 应用程序中集成了 Firebase Dynamic 链接,以打开应用程序用户并将其导航到应用程序中的特定屏幕。
首先,我在 pubspec.yaml 文件中添加了以下插件:
firebase_dynamic_links: ^5.0.5
Run Code Online (Sandbox Code Playgroud)
然后,我创建了一个单独的类来处理相关的内容,如下所示:
class DynamicLinkService {
late BuildContext context;
FirebaseDynamicLinks dynamicLinks = FirebaseDynamicLinks.instance;
Future<void> initDynamicLinks(BuildContext context) async {
this.context = context;
dynamicLinks.onLink.listen((dynamicLinkData) {
var dynamicLink=dynamicLinkData.link.toString();
if (dynamicLink.isNotEmpty &&
dynamicLink.startsWith(ApiConstants.baseUrl) &&
dynamicLink.contains("?")) {
//Getting data here and navigating...
...
...
...
}
}).onError((error) {
print("This is error >>> "+error.message);
});
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我在我的主屏幕中初始化深层链接,如下所示:
final DynamicLinkService _dynamicLinkService = DynamicLinkService();
Run Code Online (Sandbox Code Playgroud)
然后调用下面的方法initState()
@override
void initState() {
SchedulerBinding.instance.addPostFrameCallback((_) async {
await _dynamicLinkService.initDynamicLinks(context);
});
}
Run Code Online (Sandbox Code Playgroud)
这就像一个魅力! …
dynamic-links ×12
firebase ×7
android ×4
flutter ×2
.net ×1
ajax ×1
asp.net-mvc ×1
c# ×1
dart ×1
deep-linking ×1
deeplink ×1
download ×1
dynamic ×1
hyperlink ×1
invite ×1
jquery ×1
loading ×1
permissions ×1
webview ×1