我想切换到WKWebView
从UIWebView
.在我的代码中,Web视图实例是在屏幕外创建的(不附加到视图层次结构)并且加载了URL.加载完成后,Web视图将在单独的UIWindow(如插页式广告)中呈现给用户.一切正常UIWebView
; 但在切换到之后WKWebView
,角度javascript代码以意想不到的方式运行.
在做了一些研究之后,我发现当WKWebView
实例未附加到视图层次结构时,javascript计时器(和HTTP加载器)被挂起:如果你在javascript中启动一个以分离运行的计时器WKWebView
- 它将不会被触发Web视图已附加.
任何人都可以建议一个可能的解决方法(除了将隐藏的Web视图附加到关键窗口,然后将其移动到另一个窗口)?
我已经创建了一个示例项目来演示问题(或者更有可能是WebKit功能)
https://dl.dropboxusercontent.com/u/148568148/WebKitViewTest.zip
测试应用程序加载带有javascript的网页,该网页调度计时器并加载HTTP请求.您可以使用开关来显示/隐藏Web视图(设置"隐藏"属性)并将其从视图层次结构中附加/分离.
如果Web视图已附加(隐藏或可见)并且您点击Load
,则javascript工作正常:您可以查看success
或failure
警告对话框.如果它已分离 - 计时器只会在它附加到视图层次结构时触发(将"Detached"切换为"on",点击"Load",等待几秒钟并切换回"off").您也可以console.log
从Safari Web Inspector 查看.
这是测试网页源:
<!doctype html>
<html ng-app="project">
<head>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.js"></script>
<script src="project.js"></script>
</head>
<body>
<div id="simple" ng-controller="MyController" data-ng-init="callNotify(message);">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和javascript:
angular.
module('project', []).
controller('MyController', ['$scope','notify', function ($scope, notify) {
$scope.callNotify = function(msg) {
notify(msg);
};
}]).
factory('notify', ['$window', '$http', '$q', '$timeout', function(win, $http, $q, $timeout) { …
Run Code Online (Sandbox Code Playgroud) 在我的项目中,我Watch Connectivity
用来向Watch和iPhone发送消息.我可以向手机发送消息并在启动应用程序时收到一串字符串,但是在使用操作时,我收到以下错误;
错误域= WCErrorDomain代码= 7012"消息回复花了太长时间."
这是事情的建立方式;
首先,手表向手机发送消息,然后手机发送一串字符串以显示在手机中WKInterfaceTable
.这有时适用于加载应用程序.(我获取所有调用的NSManagedObjects Items
并使用它们的title
字符串属性存储在被array
调用的中watchItems
.
但是,我在手表上有一个操作,删除数组中的所有项目并使用新数据刷新表格.
手表上的操作使用一个sendMessage
功能发送item
到手机以从阵列中删除,然后手机将新更新的阵列发送到手表,手表更新表.但是,我要么返回相同的数组,要么出错.
非常简单,所以在Swift 3和Watch OS3/iOS 10之前一切正常工作; 整个应用程序曾经工作过.
这是我如何设置一切;
电话应用代表
import WatchConnectivity
class AppDelegate: UIResponder, UIApplicationDelegate, WCSessionDelegate {
var session : WCSession!
var items = [Items]()
func loadData() {
let moc = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext
let request = NSFetchRequest<Items>(entityName: "Items")
request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: true)]
request.predicate = NSPredicate(format: "remove == 0", "remove")
do {
try
self.items = …
Run Code Online (Sandbox Code Playgroud) bitbucket很容易.如果我不想让我的回购分叉.我可以禁用它.只有获得回购许可,只有我邀请的人才能回购.
但是github中的功能在哪里?我有企业回购,我希望邀请人们参与其中.但不要让他们分叉.
我可能错过了一些东西,谷歌搜索没有带来任何有用的东西.有人能指出我正确的方向吗?
在此先感谢您的时间.
所以这是我试图解决的问题.
在每一个
viewController
我试图插入广告和实际的控制元素.我在raywenderlinch.com上完成了几个教程,以了解人们如何专业地在他们的应用中放置广告.他们使用UIViews在视图控制器的主视图下有两个视图.所以我完全理解一个人subview
持有广告而另一个持有实际应用内容.如果加载广告占用屏幕,或者让其他视图具有所有可用区域.
在我回到xcode之后,我开始编写我在那里学习的方式.但是当我UIView
在故事板上播放时,我看到了containerView
,在编写教程时我觉得它不存在.
所以我在这里询问这两种方法及其优缺点.
所以基本上它UIView
VS ContainerView
.我该怎么做,为什么?
任何帮助将不胜感激.
我正在研究Visual Studio 2010.想要创建一个包含像shell32.dll一样的图标的dll.任何人都可以指导我需要做什么.目的:我只想让我的fav图标绑定一个dll并保留在我的根驱动器中并自定义所有文件夹图标,我只是需要它包含Dll就是这样.我不知道需要什么和所有努力,我准备好需要付出多少努力.欢迎提出任何建议或意见.我不确定需要什么细节,所以添加了shell32.dll的图片.
我一直在努力解决问题很长一段时间:我有一个快速的项目,有自动布局我正在使用任何高度,任何宽度.我有adbanner,其高度为50,侧面固定为超级视图.
当我运行时,我收到此错误:
无法设置adSize属性.没有足够的空间来展示自定义尺寸的广告,{600,50}.请使用适合当前屏幕范围{320,568}的大小.
我在这里阅读了不少帖子,要么他们没有使用autolayout或者用于android: AdMob Banner Size for retina display iphone
这个谷歌链接再次用于Android,对于塑造我的思维有点帮助 https://developers.google.com/mobile-ads-sdk/docs/dfp/android/banner?hl=en
看了很多松散相关的东西.我写这行:
adBannerView.adSize = kGADAdSizeBanner
哪个应该解决问题因为我在iPhone和Banner是320x50我也试过kGADAdSizeSmartBannerPortrait
但我仍然看到错误,并且广告没有显示我认为可能是因为我的测试设备也是如此...
Run Code Online (Sandbox Code Playgroud)if debug{ var devices: [String] = ["fe2b6df035b7b0729ae7d33cf35d2aa9"] GADRequest().testDevices = devices } else{ adBannerView.loadRequest(GADRequest()) }
但没有运气.任何人都有我的一些指示.
这似乎是一个非常基本的问题,但我被淘汰了.如何测试那些为了挂钩而编写的脚本.
我们知道脚本是在后台运行的,SVN控制台只会向我们抛出错误.我尝试使用断点但是我没有任何东西可以为脚本提供输入.
有没有人对此有所了解.我正在Windows上编写svn钩子脚本,因此很多已编写的钩子脚本要么没有运行,要么没有提供所需的输出,例如从apache检查mime-type和eol脚本.
我已经检查了有关此问题的相关文章。 在 iOS 的 Realm 中添加数据的问题
似乎只是在上一篇文章中指出人们没有向变量添加动态。这不是我的情况。我根本找不到任何其他原因导致它失败。
构建目标 12.2,swift 版本:Swift 5,领域版本:swift-10.2.1
我的课:
class Person: Object {
dynamic var id = UUID().uuidString
dynamic var name = ""
}
Run Code Online (Sandbox Code Playgroud)
这就是我试图添加到领域的方式
let realm = try! Realm()
let person = Person()
person.name = "John Doe"
try! realm.write {
realm.add(person)
}
Run Code Online (Sandbox Code Playgroud)
任何指针或建议将不胜感激。非常感谢您阅读这篇文章。
这是不言而喻的调试日志
2016-06-24 00:50:34.965 testApp[13184:] <FIRAnalytics/DEBUG> Event logged. Event name, event params: select_content, {
"_o" = app;
"content_type" = "Share_Screen";
"item_id" = 4;
}
2016-06-24 00:50:40.969 testApp[13184:] <FIRAnalytics/DEBUG> Event logged. Event name, event params: select_content, {
"_o" = app;
"content_type" = "About_Screen";
"item_id" = 5;
}
Run Code Online (Sandbox Code Playgroud)
为了简洁起见,我删去了许多其他事件。
2016-06-24 00:50:46.346 testApp[13184:] <FIRAnalytics/DEBUG> Do not schedule an upload task. Task already exists
2016-06-24 00:50:46.394 testApp[13184:] <FIRAnalytics/DEBUG> No data to upload. Upload task will not be scheduled
2016-06-24 00:50:46.394 testApp[13184:] <FIRAnalytics/DEBUG> Canceling active timer …
Run Code Online (Sandbox Code Playgroud) 我正在编写以下脚本来从文本文件中读取服务器列表ssh到它们并运行ldd命令来获取服务器上安装的版本.唯一的问题是我看到错误,其中显示错误的主机名称:
adev@abclnxdev:[/home/adev/perl-scripts] {63} % perl try.pl
Net::SSH: Bad host name: abclnxtest01
at try.pl line 21
Run Code Online (Sandbox Code Playgroud)
当我手动对这个主机执行ssh时.它得到连接.这是脚本:
#!/mu/bin/perl
use Net::SSH::Perl;
use warnings;
my $file = "server-list.txt";
my $usr = "user";
my $pwd = "password";
my $output_file = "GlibC-version.txt";
open(HANDLE, $file) or die("Cant open the file :( ");
@server_list = <HANDLE>;
close(HANDLE);
#debug_print_array(@server_list);
open(HANDLE, ">>$output_file"); #opening file for output.
foreach $host (@server_list)
{
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($usr,$pwd,$ssh);
my($stdout, $stderr, $exit) = $ssh->cmd("ldd --version|grep ldd");
print HANDLE "----------------------------------";
print HANDLE …
Run Code Online (Sandbox Code Playgroud)