![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Objective-C) Enable Chilkat Classes in JavaScriptSee more JavaScript ExamplesTo use Chilkat classes in JavaScript, you must first enable them in the host application, as they are disabled by default. Instantiating a disabled class will cause a JavaScript exception. Chilkat classes can be enabled in four local filesystem access modes:sandbox, readOnly, writeOnly, or readWrite. You can also enable all classes in a chosen mode.Note: This example requires Chilkat v11.4.0 or greater.
#import <CkoStringBuilder.h> #import <CkoJs.h> #import <CkoJsonObject.h> BOOL success = NO; // Chilkat classes within JavaScript are disabled by default. // An attempt to instantiate a disabled Chilkat class results in a JavaScript exception. // For example, try the following JavaScript without first enabling the Chilkat class: // sb = new CkStringBuilder(); // sb.Append('Hello World'); // success = sb.WriteFile('c:/aaworkarea/helloWorld.txt','utf-8',true); CkoStringBuilder *sbJavaScript = [[CkoStringBuilder alloc] init]; [sbJavaScript Append: @"sb = new CkStringBuilder(); sb.Append('Hello World'); success = sb.WriteFile('c:/aaworkarea/helloWorld.txt','utf-8',true);"]; CkoJs *js = [[CkoJs alloc] init]; CkoJsonObject *result = [[CkoJsonObject alloc] init]; result.EmitCompact = NO; // Run the script. This should result in an error because we haven't enabled the Chilkat CkStringBuilder class. success = [js Eval: sbJavaScript result: result]; if (success == NO) { // Examine the result for an exception. NSLog(@"%@",[result Emit]); // The result contains this: // { // "exception": { // "message": "Cannot create the chilkat object because the chilkat class is disabled in JavaScript. Fix by calling SetCkPermission before calling Eval or CallFunction", // "stack": [ // { // "func": "CkStringBuilder" // }, // { // "func": "<eval>", // "file": "<input>", // "line": 1, // "col": 9 // } // ] // } // } } // Enable the Chilkat CkStringBuilder JavaScript class for readWrite [js SetCkPermission: @"CkStringBuilder" permission: @"readWrite"]; // The script should work now... success = [js Eval: sbJavaScript result: result]; NSLog(@"%@%d",@"success = ",success); // If the CkStringBuilder class is enabled for readOnly or sandbox, then it will fail. // - Chilkat methods that could directly or indirectly write to the filesystem require writeOnly or readWrite access. // - Chilkat methods that read the local filesystem require readOnly or readWrite access. // - Chilkat methods that don't interact with the local filesystem work in any mode including sandbox. [js SetCkPermission: @"CkStringBuilder" permission: @"readOnly"]; success = [js Eval: sbJavaScript result: result]; if (success == NO) { // Examine the result for an exception. NSLog(@"%@",[result Emit]); // { // "exception": { // "message": "failed because this Chilkat method requires the writeOnly or readWrite permission", // "stack": [ // { // "func": "WriteFile" // }, // { // "func": "<eval>", // "file": "<input>", // "line": 1, // "col": 67 // } // ] // } // } } |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.