From 7e375ce7a765aebd1ef495f35cec8ede59ec56a8 Mon Sep 17 00:00:00 2001 From: Andrew n marshall Date: Thu, 9 Aug 2018 15:32:31 -0700 Subject: [PATCH] Load HTML from Resources, into WebView The resource file URL appears to be wrong in some way --- .../Blockly WebView.xcodeproj/project.pbxproj | 32 ++++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 18262 -> 36560 bytes .../Base.lproj/Main.storyboard | 26 ++++++++++++-- .../ios/Blockly WebView/ViewController.swift | 17 +++++++++- .../Non-Localized/Blockly/webview.html | 5 +++ 5 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 demos/ios/Resources/Non-Localized/Blockly/webview.html diff --git a/demos/ios/Blockly WebView.xcodeproj/project.pbxproj b/demos/ios/Blockly WebView.xcodeproj/project.pbxproj index 94ba7cea4..eeea4d2eb 100644 --- a/demos/ios/Blockly WebView.xcodeproj/project.pbxproj +++ b/demos/ios/Blockly WebView.xcodeproj/project.pbxproj @@ -7,14 +7,17 @@ objects = { /* Begin PBXBuildFile section */ + AB036C55211B89D600CCC9D8 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB036C54211B89D600CCC9D8 /* WebKit.framework */; }; AB980111211A37B50025AFF2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB980110211A37B50025AFF2 /* AppDelegate.swift */; }; AB980113211A37B50025AFF2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB980112211A37B50025AFF2 /* ViewController.swift */; }; AB980116211A37B50025AFF2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB980114211A37B50025AFF2 /* Main.storyboard */; }; AB980118211A37B70025AFF2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AB980117211A37B70025AFF2 /* Assets.xcassets */; }; AB98011B211A37B70025AFF2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB980119211A37B70025AFF2 /* LaunchScreen.storyboard */; }; + ABA1B7FC212214E7000D3CC5 /* Blockly in Resources */ = {isa = PBXBuildFile; fileRef = ABA1B7FB212214E7000D3CC5 /* Blockly */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + AB036C54211B89D600CCC9D8 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; AB98010D211A37B50025AFF2 /* Blockly WebView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Blockly WebView.app"; sourceTree = BUILT_PRODUCTS_DIR; }; AB980110211A37B50025AFF2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; AB980112211A37B50025AFF2 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -22,6 +25,7 @@ AB980117211A37B70025AFF2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; AB98011A211A37B70025AFF2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; AB98011C211A37B70025AFF2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + ABA1B7FB212214E7000D3CC5 /* Blockly */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Blockly; path = "Resources/Non-Localized/Blockly"; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -29,17 +33,27 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + AB036C55211B89D600CCC9D8 /* WebKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + AB036C53211B89D500CCC9D8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AB036C54211B89D600CCC9D8 /* WebKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; AB980104211A37B50025AFF2 = { isa = PBXGroup; children = ( AB98010F211A37B50025AFF2 /* Blockly WebView */, AB98010E211A37B50025AFF2 /* Products */, + AB036C53211B89D500CCC9D8 /* Frameworks */, ); sourceTree = ""; }; @@ -54,6 +68,7 @@ AB98010F211A37B50025AFF2 /* Blockly WebView */ = { isa = PBXGroup; children = ( + ABA1B7F9212214B9000D3CC5 /* Resources */, AB980110211A37B50025AFF2 /* AppDelegate.swift */, AB980112211A37B50025AFF2 /* ViewController.swift */, AB980114211A37B50025AFF2 /* Main.storyboard */, @@ -64,6 +79,22 @@ path = "Blockly WebView"; sourceTree = ""; }; + ABA1B7F9212214B9000D3CC5 /* Resources */ = { + isa = PBXGroup; + children = ( + ABA1B7FA212214C6000D3CC5 /* Non-Localized */, + ); + path = Resources; + sourceTree = ""; + }; + ABA1B7FA212214C6000D3CC5 /* Non-Localized */ = { + isa = PBXGroup; + children = ( + ABA1B7FB212214E7000D3CC5 /* Blockly */, + ); + path = "Non-Localized"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -125,6 +156,7 @@ AB98011B211A37B70025AFF2 /* LaunchScreen.storyboard in Resources */, AB980118211A37B70025AFF2 /* Assets.xcassets in Resources */, AB980116211A37B50025AFF2 /* Main.storyboard in Resources */, + ABA1B7FC212214E7000D3CC5 /* Blockly in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/demos/ios/Blockly WebView.xcodeproj/project.xcworkspace/xcuserdata/marshalla.xcuserdatad/UserInterfaceState.xcuserstate b/demos/ios/Blockly WebView.xcodeproj/project.xcworkspace/xcuserdata/marshalla.xcuserdatad/UserInterfaceState.xcuserstate index a4dea93447f0a4fd008ddf4293e753e1c1970851..3e3e55daa1ae3f2c74a8adf45376767485f1c23a 100644 GIT binary patch literal 36560 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 - + + + + - + + @@ -9,16 +13,32 @@ - + + + + + + + + + + + + + + + + + diff --git a/demos/ios/Blockly WebView/ViewController.swift b/demos/ios/Blockly WebView/ViewController.swift index 94df7b750..b84798535 100644 --- a/demos/ios/Blockly WebView/ViewController.swift +++ b/demos/ios/Blockly WebView/ViewController.swift @@ -7,12 +7,27 @@ // import UIKit +import WebKit class ViewController: UIViewController { - + /// The name used to reference this iOS object when executing callbacks from the JS code. + /// If this value is changed, it should also be changed in the `CODE_GENERATOR_BRIDGE_JS` file. + fileprivate static let HOST_HTML = "Blockly/webview.html" + + @IBOutlet weak var webView: WKWebView! + override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. + loadWebView() + } + + func loadWebView() { + print("loadWebView: Bundle.main = ", Bundle.main); // This prints + if let htmlUrl = Bundle.main.url(forResource: "webview", withExtension: "html", subdirectory: "Blockly") { + print("htmlUrl = ", htmlUrl) // Doesn't print + webView.load(URLRequest.init(url: htmlUrl)) + } } override func didReceiveMemoryWarning() { diff --git a/demos/ios/Resources/Non-Localized/Blockly/webview.html b/demos/ios/Resources/Non-Localized/Blockly/webview.html new file mode 100644 index 000000000..5f5c045fa --- /dev/null +++ b/demos/ios/Resources/Non-Localized/Blockly/webview.html @@ -0,0 +1,5 @@ + + +

Blockly/webview.html

+ + \ No newline at end of file