|
@@ -110,10 +110,15 @@ func createJSContext() -> JSContext {
|
|
|
}
|
|
|
|
|
|
func testDetail(url: String, ctx: JSContext) -> Void {
|
|
|
+ let startTime = DispatchTime.now()
|
|
|
if let detailFunction = ctx.objectForKeyedSubscript("detail") {
|
|
|
let result = detailFunction.call(withArguments: [url])
|
|
|
let completionHandler: @convention(block) (JSValue) -> Void = { result in
|
|
|
print("详情结果!!: \(result.toDictionary())")
|
|
|
+ let endTime = DispatchTime.now()
|
|
|
+ let nanoTime = endTime.uptimeNanoseconds - startTime.uptimeNanoseconds
|
|
|
+ let timeInterval = Double(nanoTime) / 1_000_000_000
|
|
|
+ print("耗时: \(timeInterval) seconds")
|
|
|
}
|
|
|
let completionFunction = unsafeBitCast(completionHandler, to: AnyObject.self)
|
|
|
result?.invokeMethod("then", withArguments: [completionFunction])
|
|
@@ -133,13 +138,13 @@ func testSearch(keyword: String, ctx: JSContext) -> Void {
|
|
|
|
|
|
let ctx = createJSContext()
|
|
|
|
|
|
-if let url = URL(string: "https://s3.amazonaws.com/justlistenmusic4560.com/bundle") {
|
|
|
+if let url = URL(string: "file:///Users/ben/Desktop/app/be/be-ytb/js/info.js") {
|
|
|
downloadJSFile(url: url) { result in
|
|
|
switch result {
|
|
|
case .success(let jsString):
|
|
|
print("下载远程JS成功")
|
|
|
ctx.evaluateScript(jsString)
|
|
|
- testDetail(url: "https://www.youtube.com/watch?v=IXuhdnB2dAY", ctx: ctx)
|
|
|
+ testDetail(url: "https://www.youtube.com/watch?v=-F3e2yFB5Yo", ctx: ctx)
|
|
|
// testSearch(keyword: "周杰伦", ctx: ctx)
|
|
|
case .failure(let error):
|
|
|
print("Download Error: \(error)")
|