WKWebView未在设备上运行
WKWebView not running on device
我的主要问题是WKWebView。。。。当我运行我的应用程序时,它应该导航到后台的网站,并通过运行主捆绑包上的.js文件中的一些代码来登录用户。
required init(coder aDecoder: NSCoder) {
// Load username and password from NSUserDefults
self.staffID = defaults.objectForKey("UserName") as String
self.pass = defaults.objectForKey("PassWord") as String
// locate file from main bundle
let populateLoginURL = NSBundle.mainBundle().pathForResource("login", ofType: "js")
// edit username and password
var PassEdited = pass + "'"
println(pass)
var PassJs = "document.getElementsByName('password')[0].value = '" + PassEdited
var usernameEdited = "'" + staffID + "'"
println(staffID)
var userNameJS = "document.getElementsByName('username')[0].value = " + usernameEdited
// submit fuction will validate username and password on webpage
let submit = "submitButton()"
//combine the java code in one line
let javaCode = userNameJS + "; " + PassJs + "; " + submit
// write java code to file in main bundle which is empty
javaCode.writeToFile(populateLoginURL!, atomically: true, encoding: NSUTF8StringEncoding, error: nil)
//configure webView
self.webView = WKWebView(frame: CGRectZero)
let configuration = WKWebViewConfiguration()
// load javacode to inject from file
let populateLoginJS = String(contentsOfFile:populateLoginURL!, encoding:NSUTF8StringEncoding, error: nil)
let populateLoginScript = WKUserScript(source: populateLoginJS!, injectionTime: .AtDocumentEnd, forMainFrameOnly: true)
// add configuration to webview
configuration.userContentController.addUserScript(populateLoginScript)
configuration.preferences.javaScriptCanOpenWindowsAutomatically = false
self.webView = WKWebView(frame: CGRectZero, configuration: configuration)
println(populateLoginJS)
super.init(coder: aDecoder)
}
override func viewDidLoad() {
//set navigation delegate of web view and navigate to specified url
webView.navigationDelegate = self
let URL = NSURL(string: "https://ifly.etihad.ae")
let request = NSURLRequest(URL:URL!)
webView.loadRequest(request)
}
这一切都在IOS模拟器上没有出现故障。
话虽如此,我注意到最后一个println(populateLoginJs)通常打印.Js文件的内容,但当在我的设备上运行时,它会打印可选的
所以要么写JS文件不工作,要么加载JS文件不起作用这是我的直觉
伙计们,任何想法或信息都将受到高度赞赏
我设法解决了这个问题,发现写入文件从未在设备上编译。在联系了苹果的支持人员后,他们说这是一个他们知道的错误。
os我现在处理这个问题的方法是检查webView在哪个URL上,如果为true,那么webView.evaluateJavaScript
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Angularjs代码未在匿名函数中运行
- jquery设置为使用参数运行
- 如何根据时间运行不同的脚本
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 将文本框链接到由按钮运行的javascript公式
- 为什么不是't运行此Javascript的Chrome
- ng应用程序使脚本无限运行
- 如何在运行时在angular 2中加载外部js脚本
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 如何使用JS/nightwatchjs并行运行多个测试
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- 我的HTML按钮没有在Javascript中运行
- WKWebView未在设备上运行