我解决了这个问题 看下面的选定答案!
我一直在努力寻找导致OSX Cocoa应用程序的WebView与Safari不同的原因.事实证明,用户代理是不同的(有点明显吗?),我正在访问的网站不知道如何处理.
令人惊讶的是,这是https://messenger.com(Facebook聊天).
问题是它不会在屏幕上显示图片.它确实加载,但实际上并没有显示.看看这个..
如果你看看我编号为'2'的区域,你会看到空的空间.我没有审查那个.它只是空的.
所以这是我原来的问题链接:使用WebKit的简单Swift Cocoa应用程序:上传图片不起作用
我解决了第一个问题(感谢答案:D),但第二个问题仍然存在.
为了调试这个,我打开了Inspect Element,我发现了这一点.
<body class=" webkit-legacy webkit mac x1 body_textalign Locale_en_US _z4_" dir="ltr">
Run Code Online (Sandbox Code Playgroud)
当我从Safari加载完全相同的页面时,我会看到:
<body class="safari webkit mac x1 body_textalign Locale_en_US _z4_" dir="ltr">
Run Code Online (Sandbox Code Playgroud)
所以我决定从我的应用程序的WebView和中提琴中替换该行!有用!所以...
我试图找到一些方法来设置我的用户代理到Safari,但我不能让它工作.有什么建议吗?
我有一个正在生产中的应用程序,每天有数千名用户使用。
我使用的是 Retrofit2 版本 2.9.0(最新)
我的build.gradle下面。
def retrofitVersion = '2.9.0'
api "com.squareup.retrofit2:converter-gson:${retrofitVersion}"
api "com.squareup.retrofit2:converter-scalars:${retrofitVersion}"
api "com.squareup.retrofit2:adapter-rxjava2:${retrofitVersion}"
api "com.squareup.retrofit2:retrofit:${retrofitVersion}"
Run Code Online (Sandbox Code Playgroud)
我集成了 Firebase Crashlytics 并使其能够在try-catch块中报告任何与 API 相关的异常。
例如
def retrofitVersion = '2.9.0'
api "com.squareup.retrofit2:converter-gson:${retrofitVersion}"
api "com.squareup.retrofit2:converter-scalars:${retrofitVersion}"
api "com.squareup.retrofit2:adapter-rxjava2:${retrofitVersion}"
api "com.squareup.retrofit2:retrofit:${retrofitVersion}"
Run Code Online (Sandbox Code Playgroud)
现在,在 Crashlytics 中,我每天都会收到数千份报告,称存在一些错误。在讨论这些错误之前,我想向您保证用户已使用适当的网络权限连接到互联网。我看到用户当时正在打开其他内容的日志。所以这些错误看起来确实是随机的。
Non-fatal Exception: java.net.UnknownHostException: Unable to resolve host "my-host-address.com": No address associated with hostname
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156)
at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
at java.net.InetAddress.getAllByName(InetAddress.java:1152)
at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.java:5)
...
Caused by android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with …Run Code Online (Sandbox Code Playgroud) 导航撰写版本2.4.0-alpha06
我有一个导航抽屉Scaffold,其中部分项目是由 ViewModel 动态生成的。
示例项目有
其中 A、B、C... 都共享相同的Screencalled Category,只是传递了不同的参数(例如 Category/A、Category/B)。
在我的里面Scaffold
...
val items = viewModel.getDrawerItems()
// This gives something like
// ["Home", "Category/A", "Category/B", "Category/C", ..., "Settings"]
// where each String represents "route"
...
val backstackEntry = navController.currentBackStackEntryAsState()
val currentScreen = Screen.fromRoute(
backstackEntry.value?.destination?.route
)
Log.d("Drawer", "currentScreen: $currentScreen")
items.forEach { item ->
DrawerItem(
item = item,
isSelected = currentScreen.name == item.route,
onItemClick = {
Log.d("Drawer", "destinationRoute: ${item.route}") …Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack-navigation android-jetpack-compose android-jetpack-compose-scaffold
我决定把我自己的FB的聊天应用程序,只显示https://messenger.com在WebView尝试其他"免费增值"的应用程序后.
我ViewController.swift只有几行代码在Web视图上加载URL
import Cocoa
import WebKit
class ViewController: NSViewController {
@IBOutlet weak var webView: WebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "https://messenger.com")
let request = NSURLRequest(URL: url!);
webView.mainFrame.loadRequest(request);
}
override var representedObject: AnyObject? {
didSet {
// do nothing
}
}
}
Run Code Online (Sandbox Code Playgroud)
除了添加NSAppTransportSecurityinfo.plist的密钥以通过HTTPS连接解锁HTTP流量之外,我还没有做任何其他设置.
请先看看这张图片.
除了两件事,一切看起来都很好.
上传图片不起作用 - 我在图片中标记为1.
共享图片没有显示 - 我在图片中标记为2.
我怀疑可能有一种方法可以监听在WebView文件浏览器中链接的JavaScript 以及类似的东西?
这个我不知道.我登录了Messenger(基本上是Facebook),所以我认为session这不是问题.也许一些jQuery加载问题?
我该怎么做才能解决这些问题?
我正在CircularReveal创建动画,使方形专辑艺术成为圆形.以下是一个简短的片段.
int cx = mImageView.getMeasuredWidth() / 2;
int cy = mImageView.getMeasuredHeight() / 2;
// get the initial radius for the clipping circle
int initialRadius = mImageView.getWidth() / 2;
// create the animation (the final radius is zero)
Animator anim = ViewAnimationUtils.createCircularReveal(mImageView, cx, cy, mImageView.getWidth(), initialRadius);
anim.setDuration(500);
anim.start();
Run Code Online (Sandbox Code Playgroud)
问题是,在动画之后,图像不会保持圆形.我正在寻找类似Animation.fillAfter(boolean fillAfter)电话的东西,但动画师没有这个选项.
以下是当前(故障)行为.
有什么建议可以在动画后将图像修复为圆圈吗?